宇博软件: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 J
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。
在.Net中内置了读写Json的对象就是 DataContractJsonSerializer 和 JavaScriptSerializer这两个。但是这个是在.Net 3.5之后才支持的。并且性能上并不优秀。
性能对比:
JSON.NET是开源的,下载地址: ,这里有完整的源代码。
下面来看看怎么使用JSON.NET,下载下来的内容解压后有两个主要文件夹,Bin和Source,Source文件夹中的内容就是源代码了。我们现在无需修改源代码,我们直接引用Bin下面的DLL来使用就可以了。
Bin目录下有根据需要,我们引用Net20下的DLL,并且在代码开始的地方,添加引用
using Newtonsoft.Json;
下面我们需要一个类对象进行序列化,类如下:
/// <summary>
/// 产品类
/// </summary>
public class Product
{
/// <summary>
/// 名称
/// </summary>
public string Name;
/// <summary>
/// 保质期
/// </summary>
public DateTime Expiry;
/// <summary>
/// 单价
/// </summary>
public decimal Price;
/// <summary>
/// 尺码
/// </summary>
public string Sizes;
}
用Product类生成一个对象:
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2012, 12, 21);
product.Price = 3.99M;
product.Sizes ="Small";
序列化对象的方法也非常的简单:
string json = JsonConvert.SerializeObject(product);
反序列化的代码如下:
Product proRuslt = (Product)JsonConvert.DeserializeObject(json,product.GetType());
这两个就是最常用到的方法了。这里只有一个需要注意的点,那就是序列化的时候,只需要传一个对象进去即可返回序列化后的字符串。而反序列化的时候,我们需要将字符串反序列化成我们需要的对象,则需要告诉方法我们需要转换对象的类型。并且转换完成后,需要强制转成我们需要转换对象的类型。
JQuery中如何使用JSON:
$.getJSON可以进行异步Ajax请求,并可以直接返回JSON对象
jQuery.getJSON(url,data,success(data,status,xhr))
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.Name );
});
$.parseJSON 可以将JSON格式的字符串,转换成对象
jQuery.parseJSON('{"name":"John"}');