.NET和JSON
2016-02-21 15:40
495 查看
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。
我们测试用到的类如下([]里面的属性是必须加的):
测试代码:
输出结果为:
Newtonsoft.Json提供的JSON操作方法
相比官方的转换方法,第三方提供的类库要简单很多。官方给的默认部署方式是直接打开VS的包管理器,PM > Install - Package Newtonsoft.Json就可以直接安装好。
测试类依旧,测试代码:
输出结果为:
可以看出,实际结果顺序可能不同,但是转换的效果是一样的。
Newtonsoft.Json只需要调用一个方法就能完成JSON的转换,比官方的方法要简洁不少。
.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(); }
输出结果为:
Newtonsoft.Json提供的JSON操作方法
相比官方的转换方法,第三方提供的类库要简单很多。官方给的默认部署方式是直接打开VS的包管理器,PM > Install - Package Newtonsoft.Json就可以直接安装好。
测试类依旧,测试代码:
string newtonSoftJson = JsonConvert.SerializeObject(p1); Console.WriteLine(newtonSoftJson);
输出结果为:
可以看出,实际结果顺序可能不同,但是转换的效果是一样的。
Newtonsoft.Json只需要调用一个方法就能完成JSON的转换,比官方的方法要简洁不少。
相关文章推荐
- 【BZOJ 1821】 [JSOI2010]Group 部落划分 Group
- javascript解决for循环中i取值的问题(转载)
- JavaScript实现AJAX的拖动效果
- 判断访问者的浏览器是否支持JavaScript和Cookies
- JavaScript处理Cookie的三个协助函数
- 轻轻谈一下seaJs——模块化开发的利器
- 浅谈javascript的call()、apply()、bind()的用法
- 完美"mix-in"(混入)模式———js对象想怎么玩就怎么玩
- javascript常用数组算法总结
- javascript常用数组算法总结
- JS获取网页高宽
- <%@ include file=""%>与<jsp:include page=""/>区别
- Javascript常用正则表达式以及JS常见正则表达式笔试题
- AnguarJS 第一天----Hello World
- javascript+HTML5自定义元素播放焦点图动画
- 【js】 古怪的 arguments
- JavaScript之面向对象的继承浅析2
- [转]C#中的string.Format()的JS版本
- Javascript自学-6
- JavaScript之面向对象浅析1