您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“NewtonsoftJson的使用方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
json是我們?cè)诠ぷ髦薪?jīng)常用到的一種數(shù)據(jù)傳輸格式,開(kāi)始過(guò)程中解析json是我們經(jīng)常面對(duì)的問(wèn)題。NewtonsoftJson是c#的一套json處理封裝類(lèi),它可以高效,方便地幫助我們處理json。
NetonSoftJson提供了完整的使用文檔,文檔地址如下:Json.NET Documentation
這應(yīng)該是我們最常用的倆個(gè)方法了
JsonConvert.DeserializeObject<T>(string json)//反序列化 JsonConvert.SerializeObject(object obj) //序列化
參考文章 Newtonsoft.Json高級(jí)用法
使用JsonIgnore特性標(biāo)簽
public class Person { public int Age { get; set; } public string Name { get; set; } [JsonIgnore] public string Sex { get; set; } }
public class Person { public int Age { get; set; } public string Name { get; set; } [JsonProperty(PropertyName = "SepcialSex")] public string Sex { get; set; } }
首先構(gòu)建一個(gè)json對(duì)象,描述了一個(gè)老師的實(shí)體,里面包含老師的基本屬性(名稱(chēng)、年齡),所管理的班級(jí)屬性,所管理的班級(jí)的學(xué)生數(shù)組
{ "name": "張三", "age": "10", "classroom": { "name": "1年級(jí)1班", "desc": "描述" }, "students": [ { "age": "小名" }, { "age": "小紅" } ] }
接下來(lái)我們使用Newtonsoftjson解析字符串并獲取到我們需要的信息
string jsonStr = "{\"name\":\"張三\",\"age\":\"10\",\"classroom\":{\"name\":\"1年級(jí)1班\",\"desc\":\"描述\"},\"students\":[{\"name\":\"小名\"},{\"name\":\"小紅\"}]}"; JObject jObject = JObject.Parse(jsonStr);
獲取姓名
Console.WriteLine("name is " + jObject["name"].ToString()); Console.WriteLine("age is " + jObject.GetValue("age").ToString());
獲取班級(jí)信息
Console.WriteLine("classroom name is " + jObject["classroom"]["name"]);
獲取學(xué)生信息
JArray jArray = JArray.Parse(jObject["students"].ToString()); foreach (var arr in jArray) { JObject jObj = JObject.Parse(arr.ToString()); string name = jObj["name"].ToString(); Console.WriteLine("student name is " + name); }
判斷key是否存在
//key 不存在 if (jObject.Property("abc") != null) { Console.WriteLine(jObject.Property("abc").Value.ToString()); } else { Console.WriteLine("當(dāng)前key不存在"); }
項(xiàng)目開(kāi)發(fā)中不管是前臺(tái)還是后臺(tái)都會(huì)遇到煩人的null,數(shù)據(jù)庫(kù)表中字段允許空值,則代碼實(shí)體類(lèi)中對(duì)應(yīng)的字段類(lèi)型為可空類(lèi)型Nullable<>,如int?,DateTime?,null值字段序列化返回的值都為null,前臺(tái)對(duì)應(yīng)字段賦值需要做null值判斷,怎么才能全局把null替換為空。
.NET Core 處理 WebAPI JSON 返回?zé)┤说膎ull為空
“NewtonsoftJson的使用方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。