前言:今天研究了下在.NET2.0环境下开发Ajax程序常常用到的一个数据类型JSON,html
本身也写不了句子不是很专业,下面是百度百科的关于JSON的介绍:git
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用彻底独立于语言的文本格式,可是也使用了相似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。github
若是曾经使用过Json,就会清楚Json能够分为两个部分:web
1. Json Object(A collection of name/value pairs)json
2. JSON Array (An ordered list of values)数组
对于在.NET2.0环境下把对象序列成一个JSON对象在C#2.0这个版本中并无相关的类库,固然在JSON官网上有不少的第三方的开源框架:浏览器
这些都在JSON官网上看到的C#经常使用JSON框架,对于.net2.0来讲我以为用LitJSON这个开源的第三方框架就好了。app
首先要先下载这里官网地址:http://lbv.github.io/litjson/框架
最新的版本是:litjson-0.7.0 ,测试环境(VS2010)测试
首先、先对项目进行添加引用这个就不用说了吧。还要在使用的类用添加命名空间。
提醒:在对一个对象转化成JSON中这个框架对汉字进行了从新的编码,可是在浏览器下又显示正常,暂时没有发现什么麻烦
Person person = new Person(); person.Name = "张晓天"; person.Age = 21; person.Address = "中国河南省平顶山"; string json_per = JsonMapper.ToJson(person); context.Response.Write(json_per);
输出的结果:
{"Name":"\u5F20\u6653\u5929","Age":21,"Address":"\u4E2D\u56FD\u6CB3\u5357\u7701\u5E73\u9876\u5C71"}
在这里LitJson把一个JSON对象序列成了C#能够操做的数据类型JsonData
string json = @"{""name"":""李梅"",""sex"":""女"",""address"":{""Country"":""中国"",""pro"":""河南省""},""arry"":[""数组内容一"",""数组内容二""]}"; Context.Response.Write("json原数据是:" + json + "<br/>"); JsonData data = JsonMapper.ToObject(json); Context.Response.Write("对json操做后的取值:<br/>省份:" + data["address"]["pro"] + "<br/>" + data["arry"][0]);
输出的结果:
json原数据是:{"name":"李梅","sex":"女", "address":{"Country":"中国","pro":"河南省"}, "arry":["数组内容一","数组内容二"] } 对json操做后的取值: 省份:河南省
List<Person> list = new List<Person>(); //序列化的list Person p1 = new Person(); p1.Name = "张晓天"; p1.Age = 21; p1.Address = "河南省平顶山"; list.Add(p1); Person p2 = new Person(); p2.Name = "李梅"; p2.Age = 22; p2.Address = "河南省商丘"; list.Add(p2); string json_txt = JsonMapper.ToJson(list); Context.Response.Write(json_txt);
输出的结果:
数组内容一[{"Name":"\u5F20\u6653\u5929","Age":21,"Address":"\u6CB3\u5357\u7701\u5E73\u9876\u5C71"},{"Name":"\u674E\u6885","Age":22,"Address":"\u6CB3\u5357\u7701\u5546\u4E18"}]
这就是测试的内容当对于LitJson.dll这个框架还有两个我没有写出来,官网有对应的说明文档在这里:http://lbv.github.io/litjson/docs/quickstart.html