有关于定义,描述之类的文字官方都有解释:http://json.org/json-zh.html
这次主题主要关于JSON的实际应用
目录
-
JSON in Javascript
-
JSON in Asp.Net
-
LINQ to JSON
-
JSON Serialization
-
XML to JSON
-
Other Resources
1.JSON in Javascript
单列表
实际应用时,还可以把Name分为FirstName,LastName
{"UserID":01, "Name":{"FirstName":"Rico","LastName":"Rui"}, "Email":"rico◎hotmail.com"}
集合
2.JSON in Asp.Net
WebForm1.aspx.cs: (这里使用New Page方式,我们也可以使用httphandler方式(webForm1.ashx"))
//{
// "channel": {
// "title": "Test Title",
// "description": "Set Data Using JObject",
// "item": [
// {
// "title": "Title Two",
// "description": "Description Two",
// "category": [
// "Json.NET",
// "CodePlex"
// ]
// },
// {
// "title": "Title One",
// "description": "Description One",
// "category": [
// "Json.NET",
// "LINQ"
// ]
// }
// ]
// }
//}
linq to Json 实际上就是linq to object
有关于序列化:
.NET Framewok 3.5也提供了JSON对象序列化和反序列化的类,System.Runtime.Serialization.Json 命名空间下的 DataContractJsonSerializer 类。
当然也可以使用JSon.Net中的Serializer
以下代码 使用DataContractJsonSerializer 类
定义实体
*Json 是在 Windows Communication Foundation (WCF) 中创建的 ASP.NET AJAX 服务所使用的默认数据格式。
所以定义实体会声明相关DataContract,DataMember的属性,
通过将 DataContract 附加到类并将 DataMember 属性附加到要序列化的成员,为DataEntity定义数据协定。
(反)序列化代码
序列化工作结束。以下演示如何
使用(反)序列化的数据或对象
获取数据 CODE—> Page
Page:
<script language="javascript" type="text/javascript">
CodeFile:
返回结果
{"name":"Name","value":01}
设置数据 Page—>Code
Page:
<script src="json2.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
CodeFile:
参考:xml2json
6.其他资源:
首先所有 enum 成员都是可序列化的,然后序列化Enum值时,一般只会生成数字
如:
JSON 格式不直接支持日期和时间,为了解决问题微软也有处理方案,如下
资源参考:
微软ASP.NET AJAX中日期类型的JSON处理
Json 的日期格式与.Net DateTime类型的转换
代码:
3.JsonCache