天天看點

Json.NET概述

  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

繼續閱讀