Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。
让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换.
官网上三种不同的组件性能对比
/****************************************************************** * 创建人:HTL * 创建时间:2015-04-08 15:36:35 * 说明:C# 使用Newtonsoft.Json序列化和反序列化自定义类型 * Json.Net版本:6.0.0.0 * 需要导入Newtonsoft.Json组件 * DEMO Url:http://ideone.com/I6MuaZ * Email:huangyuan413026@163.com *******************************************************************/ using System; using Newtonsoft.Json; using System.Collections.Generic; namespace NewtonsoftJsonTest { //自定义类型 public class User { public string name { get; set; } public string age { get; set; } public override string ToString() { if (string.IsNullOrEmpty(name) && string.IsNullOrEmpty(age)) return string.Empty; return string.Format("age:{0},name:{1}", this.age, this.name); } } class Program { public static void Main(string[] args) { User p = null; #region//将字符串反序列化成自定义类型 try { p = JsonConvert.DeserializeObject<User>("{ \"age\":\"10\" , \"name\":\"HTL\" }"); //User p =(User)JsonConvert.DeserializeObject("{ \"age\":\"10\" , \"name\":\"HTL\" }",typeof(User)); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("将字符串反序列化成自定义类型结果"); Console.WriteLine((p ?? new User()).ToString());//输出:"age:10,name:HTL" p = null; #endregion Console.WriteLine(Environment.NewLine); #region//将自定义类型序列化成字符串 p = new User { age = "20" , name = "HTL" }; string s = string.Empty; try { s = JsonConvert.SerializeObject(p); } catch (Exception e) { Console.WriteLine(e.Message); } finally { p = null; } Console.WriteLine("将自定义类型序列化成字符串结果:"); Console.WriteLine(s ?? string.Empty); //输出:"{\"name\":\"HTL\",\"age\":\"20\"}" s = string.Empty; #endregion Console.ReadLine(); } } }