码迷,mamicode.com
首页 > Web开发 > 详细

JSON是什么?

时间:2015-08-31 23:47:40      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

        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支持
DataContractJsonSerializer System.Runtime.Serialization.Json 通用
JavaScriptSerializer System.Web.Script.Serialization 只能在Web环境使用
JsonArrayJsonObjectJsonValue System.Json 只能在Silverlight中使用
JsonConvertJArrayJObjectJValueJProperty Newtonsoft.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的名字很高大上,没用之前以为又是什么新技术,用过之后才知道就是咱们平常接触的一些东西。所以往后还得多尝试,这样才能把知识结成网,更好的做到思想的融会贯通。


版权声明:本文为博主原创文章,未经博主允许不得转载。

JSON是什么?

标签:

原文地址:http://blog.csdn.net/wangjingna/article/details/48139197

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!