C# Newtonsoft.Json用法詳解
源碼地址:點(diǎn)擊跳轉(zhuǎn)
在NuGet 里直接搜索 Newtonsoft.Json,點(diǎn)擊安裝即可
一、創(chuàng)建JSON對象
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("睡覺")); obj.Add("Favorites", array); obj.Add("Remark", null); Console.WriteLine(array.ToString());
上面代碼可以簡化成:
JArray array = new JArray("吃飯", "睡覺");
三、使用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());
四、將類對象序列化為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反序列化為類對象
將 Json 字符串反序列化成一個(gè)類對象
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\":[\"吃飯\",\"睡覺\"]}"; JObject obj = JObject.Parse(json);
六、常用工具
在上面的json代碼中都帶有 “\” 字符,這個(gè)叫轉(zhuǎn)義字符,一般直接寫在代碼中的json如果沒有轉(zhuǎn)義,會報(bào)錯的,在這里給大家介紹一些Json相關(guān)的小工具。
1.判斷Json是否正確
JSON在線 | JSON解析格式化—SO JSON在線工具
在這個(gè)網(wǎng)站中,可以判斷 json 是否出錯
2.添加轉(zhuǎn)義字符
轉(zhuǎn)義,就是在 json 中加入 “\”,這個(gè)在變量的定義時(shí),會用到
3.去轉(zhuǎn)義字符
去轉(zhuǎn)義,就是去掉 json 中的 “\”
4.壓縮Json
壓縮,是將自動對齊的 json 變?yōu)橐恍?,并去掉空格,使字符串的字?jié)數(shù)變小
另外,推薦一個(gè)網(wǎng)站,可以將 json 轉(zhuǎn)換為實(shí)體類
5.Json轉(zhuǎn)為實(shí)體類
輸入json 就可以轉(zhuǎn)換成對于的字段了,在我們做反序列化時(shí),非常好用,不過,過于復(fù)雜的json,轉(zhuǎn)換還是有點(diǎn)問題的,需要自己手動修改一下。
到此這篇關(guān)于C# Newtonsoft.Json用法詳解的文章就介紹到這了,更多相關(guān)C# Newtonsoft.Json內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用LibUsbDotNet實(shí)現(xiàn)USB設(shè)備檢測
C#?LibUsbDotNet是一個(gè).NET平臺上的庫,用于訪問USB設(shè)備,它封裝了Linux下的libusb庫,LibUsbDotNet提供了一個(gè)簡單的API,開發(fā)者可以利用這個(gè)庫在C#中操作USB設(shè)備,本文介紹了C#使用LibUsbDotNet實(shí)現(xiàn)USB設(shè)備檢測,需要的朋友可以參考下2024-07-07C#借助OpenCvSharp讀取攝像頭并顯示的實(shí)現(xiàn)示例
OpenCvSharp是一個(gè)OpenCV的.Net wrapper,應(yīng)用最新的OpenCV庫開發(fā),本文主要介紹了C#借助OpenCvSharp讀取攝像頭并顯示的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2022-05-05c#遠(yuǎn)程html數(shù)據(jù)抓取實(shí)例分享
這篇文章主要介紹了c#遠(yuǎn)程html數(shù)據(jù)抓取的方法,大家參考使用吧2013-12-12