本文的前提是你已经熟悉Json,如果您还不知道什么是Json是什么,请自行查看维基百科。
一、Json.Net是什么?
Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换。二、为什么使用Json.Net?
我们知道在.Net中内置了读写Json的对象(DataContractJsonSerializer,JavaScriptSerializer),为什么我们还要用Json.Net呢?
在功能上:
特性 | Json.Net | DataContractJsonSerializer | JavaScriptSerializer | |||||||||
Json | 支持 | 支持 | ||||||||||
Bson | 不支持 | 不支持 | ||||||||||
Json Schema | .Net 2.0 | .Net 3.5 | .Net 4.0 | Silverlight | Windows Phone | Windows 8 Metro | Linq to Json | Indented Json(有换行格式的Json) | Json和XML转换 | 序列化DataTable和DataSet | 序列化Entity Framework | 不支持 |
在性能上:
三、简单实例
以下就json常用的方法给大家做一个简单的例子:
JavaScriptConvert.SerializeObject:将对象转换为josn字符串
Productproduct =newProduct(); product.Name ="Apple"; product.Expiry =newDateTime(2008,12,28); product.Price = 3.99M; product.Sizes =newstring[] {"Small","Medium","Large"}; string json = JavaScriptConvert.SerializeObject(product);
Newtonsoft.Json.JavaScriptConvert.DeserializeObject:根据json字符串反序列化得到对象。
ProductdeserializedProduct = (Product)JavaScriptConvert.DeserializeObject(output,typeof(Product));
其中的output就是一个json字符串,而product是要反序列化的类对象 通过这两个常用的方法,就可以很方便的从json字符串得到对象和从对象得到json字符串。