JSON是什么?

        JSON(JavaScript Object Natation) JS 对象表示法,从属于JS(JavaScript),是一种基于文本、独立于语言的轻量级数据交换格式。它经常被拿来和XML作比较,比较方面一般有:

       可读性——不相上下,XML的标签形式规范,JSON语法简易

       可扩展性——二者的扩展性都很好,不过JSON可存储JS复合对象,XML就无缘了

       编码难度——XML更符合自然语言规范,JSON更倾向与机器语言。JSONXML更小、更快、更易解析

一、JSON结构

       JSON数据有两种结构:

1.Name-Value对构成的集合,类似于HashMap

{
	"name":"Jenna",
	"age":"21"
}

2.Value的有序列表,类似于Array

[
	{"name":"Jenna","age":"21"},
	{"name":"lucy","age":"20"}
]
二、 JSON的使用

       对JSON的操作说到底就是操作一个Object对象,关于对Object的操作相信大家都不陌生,直接定义一个对象,赋值、取值、修改、删除等等一系列的基础性操作如下

//获取一个名为dg表格,新更改的行集合
row = $("#dg").datagrid('getChanges');
if (row.length) {
	var array=new Array;
	for (var i = 0; i < row.length; i++) {
		var obj = new Object();
		obj.BidRecorderId = row[i].BidRecorderId;
		obj.CompanyName = row[i].CompanyName;
		//添加属性,还可以用下边的格式定义
		obj["Quote"] = row[i].Quote;
		obj["QuoteScore"] = row[i].QuoteScore;
		//删除Quote属性
		delete obj.Quote;
		//更新,直接赋值即可
		obj.QuoteScore = "12"
		//都添加到array数组中
		array.push(obj);
	}
}
三、JSON 的序列化和反序列化

       在实际项目中js和controller之间传递的数据类型大部分是JSON格式的,另外引用第三方控件的时候,它们的很多操作返回值类型也是JSON格式。刚开始不知道JSON是什么,更不懂什么序列化反序列化,但是在做的过程中,需要序列化和反序列化的时候就上网查一下方法,很简单就实现了这个功能。

在.net中Json解析的几种方法(一篇博客上看到的,很实用)

主要类命名空间限制内建LINQ支持
DataContractJsonSerializerSystem.Runtime.Serialization.Json通用
JavaScriptSerializerSystem.Web.Script.Serialization只能在Web环境使用
JsonArrayJsonObjectJsonValueSystem.Json只能在Silverlight中使用
JsonConvertJArrayJObjectJValueJPropertyNewtonsoft.Json通用
序列化JSON

//序列化JSON类型的数据dataJson,并复制给arrayList
arrayList: JSON.stringify(dataJson)

反序列化JSON

//反序列化<span style="font-family:Calibri;">arrayList数据</span>
var data = Request["arrayList"];
JavaScriptSerializer jsData = new JavaScriptSerializer();
List<TestViewModel> listTest = jsData.Deserialize<List<TestViewModel>>(data);

小结:

       JSON的名字很高大上,没用之前以为又是什么新技术,用过之后才知道就是咱们平常接触的一些东西。所以往后还得多尝试,这样才能把知识结成网,更好的做到思想的融会贯通。


评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值