.NET2.0下的对象生成JSON数据
前言:今天研究了下在.NET2.0环境下开发Ajax程序经常用到的一个数据类型JSON,
一、什么是JSON?
自己也写不了句子不是很专业,下面是百度百科的关于JSON的介绍:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
如果曾经使用过Json,就会清楚Json可以分为两个部分:
1. Json Object(A collection of name/value pairs)
2. JSON Array (An ordered list of values)
对于在.NET2.0环境下把对象序列成一个JSON对象在C#2.0这个版本中并没有相关的类库,当然在JSON官网上有很多的第三方的开源框架:
- fastJSON.
- JSON_checker.
- Jayrock.
- Json.NET - LINQ to JSON.
- LitJSON.
- JSON for .NET.
- JsonFx.
- JSONSharp.
- JsonExSerializer.
- fluent-json
- Manatee Json
这些都在JSON官网上看到的C#常用JSON框架,对于.net2.0来说我觉得用LitJSON这个开源的第三方框架就行了。
二、LitJSON框架的使用
首先要先下载这里官网地址:http://lbv.github.io/litjson/
最新的版本是:litjson-0.7.0 ,测试环境(VS2010)
首先、先对项目进行添加引用这个就不用说了吧。还要在使用的类用添加命名空间。
提醒:在对一个对象转化成JSON中这个框架对汉字进行了重新的编码,但是在浏览器下又显示正常,暂时没有发现什么麻烦
把一个类型软化为json对象
Person person = new Person();
person.Name = "张晓天";
person.Age = ;
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"}
把一个JSON对象转化成jsonData类型方便C#操作
在这里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"][]);
输出的结果:
json原数据是:{"name":"李梅","sex":"女", "address":{"Country":"中国","pro":"河南省"}, "arry":["数组内容一","数组内容二"] }
对json操作后的取值:
省份:河南省
把一个List集合转化成一个JSON对象
List<Person> list = new List<Person>(); //序列化的list
Person p1 = new Person();
p1.Name = "张晓天";
p1.Age = ;
p1.Address = "河南省平顶山";
list.Add(p1);
Person p2 = new Person();
p2.Name = "李梅";
p2.Age = ;
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
.NET2.0下的对象生成JSON数据的更多相关文章
- python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)
昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...
- servlet生成json数据返回至Ajax
一.JSON JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的符号标 ...
- PHP“Cannot use object of type stdClass as array” (php在调用json_decode从字符串对象生成json对象时的报错)
php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误 错误:Cannot use object of type stdClass as arra ...
- 生成JSON数据--fastjson(阿里)方法
fastjson(阿里)方法生成JSON数据: 与Gson类似,创建相应类,再使用JSON.toJSONString()添加对象 要求:生成如下JSON数据 1.{"age":3, ...
- 无限级分类及生成json数据
第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下: /*生成类别JSON数据*/ public function wirteJson(){ $dataInfo = \thi ...
- ASP生成JSON数据
原文地址为:ASP生成JSON数据 < %@LANGUAGE = " VBSCRIPT " CODEPAGE = " 65001 " % > ...
- .NET2.0引用.NET3.5的System.Core.dll&Dapper在.NET2.0下的配置
微软MSDN对.NET2.0,3.0,3.5的描述: .NET Framework 版本 2.0.3.0 和 3.5 是使用同一 CLR 版本 (CLR 2.0) 生成的. 这些版本表示单个安装的连续 ...
- Asp.Net2.0下C#环境 Login控件实现用户登录
原文:Asp.Net2.0下C#环境 Login控件实现用户登录 一.前台显示效果 二.前台代码 <asp:Login ID="Login1" run ...
- 生成JSON数据--Gson(谷歌)方法
Gson生成JSON数据方法: 创建相应的类,然后创建对象,toJson()进去就可以了 要求:生成如下JSON数据 1.{"age":4,"name":&qu ...
随机推荐
- HTTP状态码(HTTP Status codes)简介
HTTP可能大家都熟悉,就是超文本传输协议.浏览器通过HTTP与WEB Server通讯(也有一些其它软件比如IM使用HTTP协议传递数据),把我们的请求(HTTP Request)传递给服务器,服务 ...
- (转)精通 JS正则表达式
精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 ...
- 关于android:configChanges小结
有段时间没更新博客了,做个音乐播放器遇到了坑,暂放来学习一个开源小项目
- 马士兵SVN.
下载 服务端:VisualSVN Server 和客户端:TortoiseSVN cmd,并cd 到 VisualSVN Server安装目录下的bin目录. 新建库: svnadmin create ...
- PHP preg_match正则表达
在php中preg_match()函数是用来执行正则表达式的一个常用的函数,下面我来给大家详细介绍preg_match使用方法. 函数用法 int preg_match_all ( string pa ...
- 【转】C++箴言:理解typename的两个含义
[转载]http://dev.yesky.com/13/2221013.shtml 问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不 ...
- C/C++默认浮点型
代码: #include <iostream> #include <cstdio> using namespace std; void test(int a){ cout< ...
- Oracle数据库之创建表结构
Oracle数据库之创建表结构 主键与外键 主键:关系型数据库中的一条记录中有若干个属性,若其中的某一个属性组(可以是一个属性,也可以是多个)能唯一标识一条记录,那么该属性组就是主键. 外键:关系型数 ...
- ADO.NET 新特性之SqlBulkCopy(批量插入大量数据)
转自:http://blog.csdn.net/huaer1011/article/details/2312361 在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还 ...
- DbContext的命名空间
未能找到类型或命名空间名称“DbContext” 解决办法:需要引用命名空间,using System.Data.Entity; 如果还报错的话,则项目需要引用程序集EntityFramework.d ...