json序列化与反序列化

方法1 :

需要手工添加引用:System.Web.Extensions,使用较方便:

 Dictionary<string, string> dict = new Dictionary<string, string>();
            dict["s"] = "s1";
            dict["t"] = "t1";
            System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            string json = serializer.Serialize(dict);

            dict = serializer.Deserialize<Dictionary<string, string>>(json);

 

方法2:

不需手工添加,但使用较复杂

 Dictionary<string, string> dict = new Dictionary<string, string>();
            dict["s"] = "s1";
            dict["t"] = "t1";

            System.Runtime.Serialization.Json.DataContractJsonSerializer p = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Dictionary<string, string>));
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            p.WriteObject(ms, dict);
            string str = System.Text.Encoding.UTF8.GetString(ms.ToArray());

            byte[] b = System.Text.Encoding.UTF8.GetBytes(str);
            ms = new System.IO.MemoryStream(b);

            dict = p.ReadObject(ms) as Dictionary<string, string>;

方法3:

使用开源组件Newtonsoft.Json(下载地址http://json.codeplex.com/)

经测试:Newtonsoft.Json可以序列化DataSet对象,而System.Web.Script.Serialization.JavaScriptSerializer那不行。

 

另外:json基本也是序列化和反序列化的问题,以下是c#本身的序列化组件

NET框架提供了两种串行化的方式:

1、是使用BinaryFormatter进行串行化;

2、使用SoapFormatter进行串行化;

3、使用XmlSerializer进行串行化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值