标签:
JSON(JavaScript Object Notation)已经成为了现在大多数程序间数据交换的存储格式,在很多地方取代了XML文件的位置。JSON实际就是JavaScript的对象数组。
.NET操作JSON的方法,基本上可以分为两种:官方和第三方。官方直到.NET Framework 3.5才对JSON有支持,如果想在之前的.NET Framework版本中使用JSON的话,那就必须借助于第三方类库,如Newtonsoft(http://www.newtonsoft.com/json)。
.NET Framework 3.5提供的JSON操作方法
在项目中添加引用:System.ServiceModel.Web 和 System.Runtime.Serialization。
我们测试用到的类如下([]里面的属性是必须加的):
[DataContract] class Person { [DataMember] public string Name { get; set; } [DataMember] public int Age { get; set; } }
测试代码:
static void Main(string[] args) { Person p1 = new Person() { Name = "Richeir", Age = 25 }; using (MemoryStream stream1 = new MemoryStream()) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person)); ser.WriteObject(stream1, p1); string convertResult = Encoding.UTF8.GetString(stream1.ToArray()); Console.WriteLine(convertResult); } Console.ReadKey(); }
输出结果为:
相比官方的转换方法,第三方提供的类库要简单很多。官方给的默认部署方式是直接打开VS的包管理器,PM > Install - Package Newtonsoft.Json就可以直接安装好。
测试类依旧,测试代码:
string newtonSoftJson = JsonConvert.SerializeObject(p1); Console.WriteLine(newtonSoftJson);
输出结果为:
可以看出,实际结果顺序可能不同,但是转换的效果是一样的。
Newtonsoft.Json只需要调用一个方法就能完成JSON的转换,比官方的方法要简洁不少。
标签:
原文地址:http://www.cnblogs.com/Richeir/p/5205029.html