前言:今天研究了下在.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官网上有很多的第三方的开源框架:

  1. fastJSON.
  2. JSON_checker.
  3. Jayrock.
  4. Json.NET - LINQ to JSON.
  5. LitJSON.
  6. JSON for .NET.
  7. JsonFx.
  8. JSONSharp.
  9. JsonExSerializer.
  10. fluent-json
  11. 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数据的更多相关文章

  1. python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)

    昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...

  2. servlet生成json数据返回至Ajax

    一.JSON JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的符号标 ...

  3. 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 ...

  4. 生成JSON数据--fastjson(阿里)方法

    fastjson(阿里)方法生成JSON数据: 与Gson类似,创建相应类,再使用JSON.toJSONString()添加对象 要求:生成如下JSON数据 1.{"age":3, ...

  5. 无限级分类及生成json数据

    第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下: /*生成类别JSON数据*/ public function wirteJson(){ $dataInfo = \thi ...

  6. ASP生成JSON数据

    原文地址为:ASP生成JSON数据 < %@LANGUAGE = " VBSCRIPT "  CODEPAGE = " 65001 " % >    ...

  7. .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) 生成的. 这些版本表示单个安装的连续 ...

  8. Asp.Net2.0下C#环境 Login控件实现用户登录

    原文:Asp.Net2.0下C#环境 Login控件实现用户登录 一.前台显示效果 二.前台代码             <asp:Login ID="Login1" run ...

  9. 生成JSON数据--Gson(谷歌)方法

    Gson生成JSON数据方法: 创建相应的类,然后创建对象,toJson()进去就可以了 要求:生成如下JSON数据 1.{"age":4,"name":&qu ...

随机推荐

  1. “The SQL Server license agreenment cannot be located for the selected edition.”MSSQL安装问题

    今天老邹又来吐槽了.今天不和IE7较劲了.说点别的吧. 我呢什么软件都喜欢装最新版的,这部刚出来windows 8.1就赶紧装上了,随后就用上了vs2013.前天看到新闻说微软已经发布了sql ser ...

  2. 在 ASP.NET 网页中不经过回发而实现客户端回调

    一.使用回调函数的好处 在 ASP.NET 网页的默认模型中,用户会与页交互,单击按钮或执行导致回发的一些其他操作.此时将重新创建页及其控件,并在服务器上运行页代码,且新版本的页被呈现到浏览器.但是, ...

  3. 武汉科技大学ACM:1004: 零起点学算法36——3n+1问题

    Problem Description 任给一个正整数n,如果n为偶数,就将它变为n/2,如果为奇数,则将它乘3加1(即3n+1).不断重复这样的运算,经过有限步后,一定可以得到1 . Input 输 ...

  4. nginx虚拟配置

    server { listen 8080; server_name www.manihome.com ; root "D:/WWW/mnmnh_2015"; location / ...

  5. WordPress社会化评论插件多说、有言、灯鹭、评论啦

    社会化登录是指网站的用户通过使用QQ.人人网.腾讯微博.新浪微博等社会化媒体账号登录该网站,并让用户能够使用社会化媒体账号进行允许的操作,如评论.分享等.经过简单的代码整合,社会化媒体账号可以在第三方 ...

  6. php发送post请求的三种方法示例

    本文分享下php发送post请求的三种方法与示例代码,分别使用curl.file_get_content.fsocket来实现post提交数据,大家做个参考. php发送post请求的三种方法,分别使 ...

  7. windows 下安装使用ipython

    转自:https://my.oschina.net/u/1431433/blog/189337 1. 下载安装Python 下载: python-3.3.3.amd64.msi (救在Python.o ...

  8. 【原创】CLEVO P157SM外接鼠标键盘失灵解决:更换硅脂(附带最新跑分数据)

    作者批注:本文允许转载,并且希望给搜索未来人类.蓝天.CLEVO.更换硅脂或者任何有关关键字的朋友提供帮助. 原文地址:http://www.cnblogs.com/c4isr/p/3514140.h ...

  9. error: No resource identifier found for attribute ‘backIcon’ in package

    异常提示: 今天我新创建了一个自定义控件,我为他定义了一个属性为backIcon,但是当我在xml设置这个属性之后,xml布局界面提示以下错误: 错误原因: 在网上查找错误原因的时候,有文章说这是因为 ...

  10. 自动删除n天前日志

    自动删除n天前日志 linux 是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种 爽快的事情.不用你去每 ...