Json.NET庫可以使JavaScript和.NET交換JSON格式的資料變得很簡單,使用JsonReader和JsonWriter能快速地讀寫JSON,或使用JsonSerializer來序列化.NET對象。
CodePlex上的Json.NET[http://www.codeplex.com/json]
Json.NET下載下傳[http://www.codeplex.com/json/Release/ProjectReleases.aspx]
特性
LINQ to JSON;
JsonSerializer可以序列化和反序列化.NET對象為JSON;
Json.NET可以格式化JSON為縮進顯示;
JsonIgnore和JsonProperty屬性可以加到類中,來自定義如何序列化;
Json.NET可以将JSON和XML來回轉換;
Json.NET支援.NET,Silverlight和Compact Framework。
當JSON和.NET類之間的映射關系很緊密的時候,采用JSON序列化器可以自動地讀寫JSON。
在諸多情況下,比如你隻關心JSON中的資料,而不想和class轉來轉去,或者JSON和class的定義結構不一樣,以緻必須手工讀寫你的object。這時你可以使用LINQ to JSON,因為LINQ to JSON可以讓你友善地讀、寫和修改JSON資料。
序列化示例
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" };
String json = JsonConvert.SerializeObject(product);
//{
// "Name": "Apple",
// "Expiry": new Date(1230422400000),
// "Price": 3.99,
// "Sizes": [
// "Small",
// "Medium",
// "Large"
// ]
//}
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
LINQ to JSON示例
String json = @"{
""Name"": ""Apple"",
""Expiry"": new Date(1230422400000),
""Price"": 3.99,
""Sizes"": [
""Small"",
""Medium"",
""Large""
]}";
JObject o = JObject.Parse(json);
String name = (string)o["Name"];
// Apple
JArray sizes = (JArray)o["Sizes"];
String smallest = (string)sizes[0];
// Small
文檔
Json.NET - 快速入門 & API文檔[http://james.newtonking.com/projects/json/help/]
本文轉自 彭金華 51CTO部落格,原文連結:http://blog.51cto.com/pengjh/580053