【C#】Json反序列化的两种简单实用方法

    前言;看到很多C/S模式网站在给客户发送数据时都是以Json格式实现的,于是写了两种反序列化json格式的方法,方便用户自行处理关键数据。

1、winform设计

拖控件很简单,就不花时间了

2、添加引用

解决方案—右击“引用”—添加引用—(.NET)System.Web.Extensions—确定

在命名空间中加上: using  System.Web.Script.Serialization;


3、完整代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web.Script.Serialization;

namespace JsonToDictionary
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //将json反序列成dictionary函数
        private Dictionary<string, object> J2D(string jsondata)
        {
            //实例化JavaScriptSerializer类
            JavaScriptSerializer jss = new JavaScriptSerializer();
            //判断json数据
            if (jsondata != null)
            {
             //将转换后的数据返回
             return jss.Deserialize<Dictionary<string, object>>(jsondata);
            }
            else
            { return null; }
        }

        //JsonToDictionary方法
        private void button1_Click(object sender, EventArgs e)
        {
            //string类型的key object类型的value
            //调用函数
            Dictionary<string, object> dic = J2D(textBox1.Text.Trim());
            //遍历dictionary输出
            foreach (var d in dic)
            {
                richTextBox1.AppendText(d.Key + ":" + d.Value+"\r\n");
            }
        }

        //JsonToArray方法
        private void button2_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != null)
            {
                //分割字符串
                string[] str = textBox1.Text.Split('{', '"', ':', '}', ',');
                //循环输出
                for (int i = 2; i < str.Length; i += 6)
                {
                    richTextBox1.AppendText(str[i] + ":" + str[i + 3] + "\r\n");
                }
            }
            else { }
        }
        
    }
}

4、验证程序

目标Json数据:{"id":"1","uid":"test","pwd":"123"}


两个的输出结果一样微笑

PS:给大家提供了两种简单实用的方法,在正式编程时最好加上容错的方法,这个比较简单,相信大家都会。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值