JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。相比XML,他更易于人阅读和编写,它是JavaScript的一个子集。 JSON采用完全独立于语言的文本格式,可以在流行的语言中使用,比如C# Java C++ VB。这些特性使JSON成为理想的数据交换语言。

一、Json的构建结构

1. “键/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),​​字典​​​(dictionary),​​哈希表​​(hash table),有键列表(keyed list),或者关联数组 (associative array)。

2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

这些都是常见的​​数据结构​​​。事实上大部分现代​​计算机​​​语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的​​编程​​语言之间交换成为可能。

二、JSon具体表现形式

1、对象是一个无序的“‘键/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。


Json简介入门_java


2、数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

Json简介入门_数组_02


3、值(value)可以是双引号括起来的字符(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

Json简介入门_java_03


4、字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。 字符串(string)与C或者Java的字符串非常相似。

Json简介入门_数组_04


5、数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

Json简介入门_json_05



三、JSon在Net中应用

JSON.Net类库(http://json.codeplex.com/)提供了转化实体类为Json格式数据的能力,即序列化和反序列化,同样提供了JSON To Linq的功能,下面是实例代码:



Product product = new Product();






product.Name = "Apple";



product.Expiry = new DateTime(2008, 12, 28);



product.Price = 3.99M;



product.Sizes = new string[] { "Small", "Medium", "Large" };



//序列化为JSON格式数据



string output = JsonConvert.SerializeObject(product);



//{



// "Name": "Apple",



// "Expiry": "\/Date(1230375600000+1300)\/",



// "Price": 3.99,



// "Sizes": [



// "Small",



// "Medium",



// "Large"



// ]



//}



//反序列化为实体类对象



Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);








参考:

http://www.json.org/

http://baike.baidu.com/view/136475.htm?fr=ala0_1_1

​​