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/]