Json.Net的介紹與簡單實用(兼容2.0/3.0/3.5/4.5/RT)

本文的前提是你已經熟悉Json,如果您還不知道什麼是Json是什麼,請自行查看維基百科。

一、Json.Net是什麼?

  Json.Net是一個讀寫Json效率比較高的.Net框架.Json.Net 使得在.Net環境下使用Json更加簡單。通過Linq To JSON可以快速的讀寫Json,通過JsonSerializer可以序列化你的.Net對象。讓你輕松實現.Net中所有類型(對象,基本數據類型等)和Json的轉換。

 二、為什麼使用Json.Net?

我們知道在.Net中內置瞭讀寫Json的對象(DataContractJsonSerializer,JavaScriptSerializer),為什麼我們還要用Json.Net呢?

在功能上:

特性 Json.Net DataContractJsonSerializer JavaScriptSerializer
Json 支持 支持 支持
Bson 支持 不支持 不支持
Json Schema 支持 不支持 不支持
.Net 2.0 支持 不支持 不支持
.Net 3.5 支持 支持 支持
.Net 4.0 支持 支持 支持
Silverlight 支持 支持 不支持
Windows Phone 支持 支持 不支持
Windows 8 Metro 支持 支持 不支持
Linq to Json 支持 不支持 不支持
Indented Json(有換行格式的Json) 支持 不支持 不支持
Json和XML轉換 支持 不支持 不支持
序列化DataTable和DataSet 支持 不支持 不支持
序列化Entity Framework 支持 不支持 不支持

 

在性能上:

三、簡單實例

以下就json常用的方法給大傢做一個簡單的例子:

JavaScriptConvert.SerializeObject:將對象轉換為josn字符串

 

[csharp]
Productproduct =newProduct(); 
 
 
product.Name ="Apple"; 
product.Expiry =newDateTime(2008, 12, 28); 
product.Price = 3.99M; 
product.Sizes =newstring[] {"Small","Medium","Large"}; 
string json = JavaScriptConvert.SerializeObject(product); 

 Productproduct =newProduct();

product.Name ="Apple";
product.Expiry =newDateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes =newstring[] {"Small","Medium","Large"};
string json = JavaScriptConvert.SerializeObject(product);
Newtonsoft.Json.JavaScriptConvert.DeserializeObject:根據json字符串反序列化得到對象。

ProductdeserializedProduct = (Product)JavaScriptConvert.DeserializeObject(output,typeof(Product));

其中的output就是一個json字符串,而product是要反序列化的類對象
通過這兩個常用的方法,就可以很方便的從json字符串得到對象和從對象得到json字符串

發佈留言