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(); } } }
有圖有真相
