宁波.Net技术讨论区

Json简介入门

 

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

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

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

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

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

三、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

posted @ 2010-10-09 14:58  山 人  阅读(238)  评论(0编辑  收藏  举报