天天看点

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

继续阅读