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)義字符,一般直接寫(xiě)在代碼中的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)文章希望大家以后多多支持腳本之家!
- C#下Newtonsoft.Json的具體使用
- C# Newtonsoft.Json庫(kù)的常用屬性和方法詳解
- C#使用Newtonsoft.Json庫(kù)實(shí)現(xiàn)JSON數(shù)據(jù)中某個(gè)字段值的提取功能
- C#使用Newtonsoft.Json中的JObject對(duì)象
- C# newtonsoft.json中文亂碼問(wèn)號(hào)的解決方案
- c# Newtonsoft.Json 常用方法總結(jié)
- C# Newtonsoft.Json 解析多嵌套json 進(jìn)行反序列化的實(shí)例
- c#添加Newtonsoft.Json包的操作
- C# Newtonsoft.Json 的使用說(shuō)明
- C#中Newtonsoft.Json 到 System.Text.Json 遷移避坑指南
相關(guān)文章
淺析WPF中控件拖拽與拖動(dòng)的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何在WPF中實(shí)現(xiàn)控件拖拽與拖動(dòng)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
基于C#實(shí)現(xiàn)的仿windows左側(cè)伸縮菜單效果
這篇文章主要介紹了基于C#實(shí)現(xiàn)的仿windows左側(cè)伸縮菜單效果,比較實(shí)用的功能,需要的朋友可以參考下2014-08-08
C#開(kāi)發(fā)Winform實(shí)現(xiàn)窗體間相互傳值
這篇文章介紹了C#開(kāi)發(fā)Winform實(shí)現(xiàn)窗體間相互傳值的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
C#利用反射實(shí)現(xiàn)多數(shù)據(jù)庫(kù)訪問(wèn)
本文詳細(xì)講解了C#利用反射實(shí)現(xiàn)多數(shù)據(jù)庫(kù)訪問(wèn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
C#實(shí)現(xiàn)狀態(tài)欄提示信息功能的示例
今天小編就為大家分享一篇C#實(shí)現(xiàn)狀態(tài)欄提示信息功能的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06

