C# Newtonsoft.Json用法詳解
源碼地址:點(diǎn)擊跳轉(zhuǎn)
在NuGet 里直接搜索 Newtonsoft.Json,點(diǎn)擊安裝即可
一、創(chuàng)建JSON對(duì)象
JObject staff = new JObject(); staff.Add(new JProperty("Name", "Jack")); staff.Add(new JProperty("Age", 33)); staff.Add(new JProperty("Department", "Personnel Department")); staff.Add(new JProperty("Leader", new JObject(new JProperty("Name", "Tom"), new JProperty("Age", 44), new JProperty("Department", "Personnel Department")))); Console.WriteLine(staff.ToString());
二、創(chuàng)建JSON數(shù)組
// 創(chuàng)建數(shù)組 JArray array = new JArray(); array.Add(new JValue("吃飯")); array.Add(new JValue("睡覺(jué)")); obj.Add("Favorites", array); obj.Add("Remark", null); Console.WriteLine(array.ToString());
上面代碼可以簡(jiǎn)化成:
JArray array = new JArray("吃飯", "睡覺(jué)");
三、使用Linq to JSON查詢
string json = "{\"Name\" : \"Jack\", \"Age\" : 34, \"Colleagues\" : [{\"Name\" : \"Tom\" , \"Age\":44},{\"Name\" : \"Abel\",\"Age\":29}] }"; //將json轉(zhuǎn)換為JObject JObject jObj = JObject.Parse(json); JToken ageToken = jObj["Age"]; Console.WriteLine(ageToken.ToString());
四、將類對(duì)象序列化為Json
public class Student { public int ID { get; set; } public string Name { get; set; } } Student student = new Student(); student.ID = "1"; student.Name = "jack"; //序列化為JSON string json = JsonConvert.SerializeObject(student);
五、將Json反序列化為類對(duì)象
將 Json 字符串反序列化成一個(gè)類對(duì)象
public class Student { public int ID { get; set; } public string Name { get; set; } } string json = "....."; Student student = JsonConvert.DeserializeObject<Student>(json);
將 Json 字符串反序列化為 JObject
string json = "{\"ID\":1,\"Name\":\"張三\",\"Favorites\":[\"吃飯\",\"睡覺(jué)\"]}"; JObject obj = JObject.Parse(json);
六、常用工具
在上面的json代碼中都帶有 “\” 字符,這個(gè)叫轉(zhuǎn)義字符,一般直接寫在代碼中的json如果沒(méi)有轉(zhuǎn)義,會(huì)報(bào)錯(cuò)的,在這里給大家介紹一些Json相關(guān)的小工具。
1.判斷Json是否正確
JSON在線 | JSON解析格式化—SO JSON在線工具
在這個(gè)網(wǎng)站中,可以判斷 json 是否出錯(cuò)
2.添加轉(zhuǎn)義字符
轉(zhuǎn)義,就是在 json 中加入 “\”,這個(gè)在變量的定義時(shí),會(huì)用到
3.去轉(zhuǎn)義字符
去轉(zhuǎn)義,就是去掉 json 中的 “\”
4.壓縮Json
壓縮,是將自動(dòng)對(duì)齊的 json 變?yōu)橐恍?,并去掉空格,使字符串的字?jié)數(shù)變小
另外,推薦一個(gè)網(wǎng)站,可以將 json 轉(zhuǎn)換為實(shí)體類
5.Json轉(zhuǎn)為實(shí)體類
輸入json 就可以轉(zhuǎn)換成對(duì)于的字段了,在我們做反序列化時(shí),非常好用,不過(guò),過(guò)于復(fù)雜的json,轉(zhuǎn)換還是有點(diǎn)問(wèn)題的,需要自己手動(dòng)修改一下。
到此這篇關(guān)于C# Newtonsoft.Json用法詳解的文章就介紹到這了,更多相關(guān)C# Newtonsoft.Json內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用TensorFlow.NET訓(xùn)練自己的數(shù)據(jù)集的方法
這篇文章主要介紹了C#使用TensorFlow.NET訓(xùn)練自己的數(shù)據(jù)集的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Unity實(shí)現(xiàn)本地文本多語(yǔ)言化
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)本地文本多語(yǔ)言化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06Unity的IPreprocessBuildWithReport實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity的IPreprocessBuildWithReport實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05淺析C#中的Main(String[] args)參數(shù)輸入問(wèn)題
本篇文章主要是對(duì)C#中的Main(String[] args)參數(shù)輸入問(wèn)題進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01基于WebRequest.RegisterPrefix的使用詳解
本篇文章對(duì)WebRequest.RegisterPrefix的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05