前言:今天研究了下在.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. Excel连接字符串(Oledb)

    Excel的连接字符串参数详解 2011-07-27 15:43:50|  分类: 编程专栏 |  标签:excel  连接字符串  参数  含义   |字号大中小 订阅     程序中读取Excel ...

  2. Debugging Failed Because Integrated Windows Authentication Is Not Enabled

    To enable integrated Windows authentication Log onto the Web server using an administrator account. ...

  3. CodeIgniter目录结构

    1.1   application 是你自己的项目存放文件的目录(控制器.模型和视图等!) (1)分析application文件夹中的目录 (1.1)         cache文件是放缓存文件 (1 ...

  4. oracle登陆连接的问题

    一.登陆 1.使用客户端 直接在database中配置: IP:1521/orcl 其中IP为要连接的IP 其中1521为要连接的数据库的端口 其中orcl为要连接的数据库的实例名字 2.使用命令行 ...

  5. JavaScript 客户端JavaScript之 脚本化文档

    客户端JavaScript的存在把静态HTML转变为交互式的Web应用程序,脚本化Web页面的内容正是JavaScript存在的理由.   一个文档对象模型或者说DOM就是一个API,它定义了如何访问 ...

  6. (二)Angularjs - 入门(2)

    AngularJS AJAX AngularJS提供了$http控制,可以用来获取服务器端的数据.服务器通过一个数据库的读取操作来获取需要的数据.注意AngularJS需要JSON格式的数据.一旦数据 ...

  7. (一)Angularjs - 入门

    AngularJS进行应用开发的一个重要的思维模式: 从构造声明式界面入手 ng-app: 这个指定定义并且关联了使用angularJS的HTML页面部分 ng-model: 这个指定定义并绑定Ang ...

  8. js插件zClip实现复制到剪贴板功能

    相信这个功能大家平时上网经常能碰到,以前也没怎么留意怎么实现的,直到项目中需要. 网上一搜一大堆,单纯使用js方法也不是没有,但是由于各浏览器的安全机制不同,不是跨浏览器的.去看了几个常用的网站,都是 ...

  9. php 求两个文件的相对路径

    网上看了一些这个题的一些解答方法,不过大多数就是对目前需求而定的,比如 $a = '/a/b/c/d/e.php'; $b = '/a/d/12/34/c.php'; getpath($a , $b ...

  10. js前台与后台数据交互

    客户端脚本一般都在前台,这里讲的是(1)在后台调用前台定义的脚本(2)在后台如何注册客户端脚本 用途 何时使用服务器代码向页中添加客户端脚本: u 当客户端脚本的内容依赖于直到运行时才可用的信息时 u ...