C JSON是一種廣泛使用的開源數(shù)據(jù)交換格式,以文本的方式表達(dá)數(shù)據(jù)結(jié)構(gòu)。C JSON提供了比XML更為輕量級(jí)的數(shù)據(jù)交換方案。而Newtonsoft是一種C#語言下的JSON處理庫,它支持大部分的JSON處理操作,如:序列化(將對(duì)象轉(zhuǎn)為JSON字符串)、反序列化(將JSON字符串轉(zhuǎn)為對(duì)象)、LINQ查詢等。
Newtonsoft提供了一系列的JsonConverter以滿足某些自定義序列化和反序列化的需求。同時(shí),Newtonsoft還可以反序列化JSON到動(dòng)態(tài)對(duì)象和JObject框架等。
using Newtonsoft.Json; using System; using System.Collections.Generic; public class Product { public int ProductID { get; set; } public string ProductName { get; set; } public decimal Price { get; set; } public ListColors { get; set; } } public class Program { static void Main(string[] args) { Product product = new Product { ProductID = 1, ProductName = "Apple", Price = 5.99M, Colors = new List { "Red", "Green", "Yellow" } }; string json = JsonConvert.SerializeObject(product); Console.WriteLine(json); } }
上述代碼展示了如何使用Newtonsoft將一個(gè)對(duì)象序列化為字符串。首先定義了一個(gè)Product類,包括屬性ProductID、ProductName、Price和Colors。然后在Main函數(shù)中定義了一個(gè)Product對(duì)象,并對(duì)其屬性進(jìn)行了賦值操作,同時(shí)給顏色屬性賦了一個(gè)字符串列表。最后使用JsonConvert.SerializeObject方法將Product對(duì)象序列化為字符串并輸出到控制臺(tái)。
需要注意的是,Newtonsoft在序列化或反序列化時(shí),會(huì)將對(duì)象的屬性名轉(zhuǎn)化為JSON中的key值,而對(duì)于JSON中的key值,在反序列化時(shí)也會(huì)轉(zhuǎn)化為對(duì)象的屬性名。因此,當(dāng)使用Newtonsoft進(jìn)行JSON處理時(shí),應(yīng)注意對(duì)象屬性名和JSON的key值的關(guān)系。