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数据。

序列化示例

  1. Product product = new Product(); 
  2. product.Name = "Apple"
  3. product.Expiry = new DateTime(2008, 12, 28); 
  4. product.Price = 3.99M; 
  5. product.Sizes = new String[] { "Small""Medium""Large" };  
  6.  
  7. String json = JsonConvert.SerializeObject(product); 
  8. //{ 
  9. //  "Name": "Apple", 
  10. //  "Expiry": new Date(1230422400000), 
  11. //  "Price": 3.99, 
  12. //  "Sizes": [ 
  13. //    "Small", 
  14. //    "Medium", 
  15. //    "Large" 
  16. //  ] 
  17. //} 
  18.  
  19. Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);

LINQ to JSON示例

  1. String json = @"{ 
  2.   ""Name""""Apple""
  3.   ""Expiry""new Date(1230422400000), 
  4.   ""Price"": 3.99, 
  5.   ""Sizes"": [ 
  6.     ""Small""
  7.     ""Medium""
  8.     ""Large"" 
  9.   ]}"; 
  10.  
  11.  JObject o = JObject.Parse(json); 
  12.  String name = (string)o["Name"]; 
  13.  // Apple 
  14.  
  15.  JArray sizes = (JArray)o["Sizes"]; 
  16.  String smallest = (string)sizes[0]; 
  17.  // Small 

文档
Json.NET - 快速入门 & API文档[http://james.newtonking.com/projects/json/help/]