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