博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET2.0下的对象生成JSON数据
阅读量:6859 次
发布时间:2019-06-26

本文共 2598 字,大约阅读时间需要 8 分钟。

hot3.png

前言:今天研究了下在.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框架的使用

首先要先下载这里官网地址:

最新的版本是:litjson-0.7.0 ,测试环境(VS2010)

首先、先对项目进行添加引用这个就不用说了吧。还要在使用的类用添加命名空间。

提醒:在对一个对象转化成JSON中这个框架对汉字进行了重新的编码,但是在浏览器下又显示正常,暂时没有发现什么麻烦

把一个类型软化为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"}

把一个JSON对象转化成jsonData类型方便C#操作

在这里LitJson把一个JSON对象序列成了C#可以操作的数据类型JsonData

 

string json = @"{""name"":""李梅"",""sex"":""女"",""address"":{""Country"":""中国"",""pro"":""河南省""},""arry"":[""数组内容一"",""数组内容二""]}";                Context.Response.Write("json原数据是:" + json + "
"); JsonData data = JsonMapper.ToObject(json);Context.Response.Write("对json操作后的取值:
省份:" + data["address"]["pro"] + "
" + data["arry"][0]);

输出的结果:

json原数据是:{"name":"李梅","sex":"女", "address":{"Country":"中国","pro":"河南省"}, "arry":["数组内容一","数组内容二"] }对json操作后的取值:省份:河南省

把一个List集合转化成一个JSON对象

List
list = new List
(); //序列化的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这个框架还有两个我没有写出来,官网有对应的说明文档在这里:

 

 

 

 

 

转载于:https://my.oschina.net/u/212572/blog/795985

你可能感兴趣的文章
基于Servlet、JSP、JDBC、MySQL登录模块(包括使用的过滤器和配置)
查看>>
Python将文本生成二维码
查看>>
统计学习那些事
查看>>
XLT架构图(自己 画的)
查看>>
GitHub Top 100 简介
查看>>
C语言中链表任意位置怎么插入数据?然后写入文件中?
查看>>
文档对象模型DOM(二)
查看>>
loading.io一个loading图标网站,跟大家分享
查看>>
ACM-凸多边形的计算几何——hrbust1429
查看>>
UICollectionView设置item(cell)之间间距为0(紧挨在一起的效果)
查看>>
Atitit.html css 浏览器原理理论概论导论attilax总结
查看>>
求解圆圈中最后剩下的数字
查看>>
jQuery入门第二天
查看>>
boost中的智能指针
查看>>
Windows下Php安装mongodb扩展失败
查看>>
IntelliJ IDEA修改Output输出缓存区大小【应对:too much output to process】
查看>>
html标签的target属性应用
查看>>
正则获取HTML代码中img的src地址
查看>>
隐藏当前Activity而不关闭
查看>>
Navicat Premium 12.0.18安装与激活(转)
查看>>