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