JSON

如何使用JSON.NET

字号+ 作者:H5之家 来源:H5之家 2015-10-28 12:48 我要评论( )

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间

宇博软件:    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"}');

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 浅谈使用PHP开发微信支付的流程

    浅谈使用PHP开发微信支付的流程

    2016-02-13 15:00

  • DockOne技术分享(十二):新浪是如何分析处理32亿条实时日志的

    DockOne技术分享(十二):新浪是如何分析处理32亿条实时日志的

    2016-02-05 19:16

  • Unity3D脚本:Unity3D使用LitJson解析服务器上的JSON

    Unity3D脚本:Unity3D使用LitJson解析服务器上的JSON

    2016-01-31 10:32

  • WebServices中使用JSON

    WebServices中使用JSON

    2016-01-24 18:13

网友点评
l