本篇內容介紹了“NewtonsoftJson的使用方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
json是我們在工作中經常用到的一種數據傳輸格式,開始過程中解析json是我們經常面對的問題。NewtonsoftJson是c#的一套json處理封裝類,它可以高效,方便地幫助我們處理json。
NetonSoftJson提供了完整的使用文檔,文檔地址如下:Json.NET Documentation
這應該是我們最常用的倆個方法了
JsonConvert.DeserializeObject<T>(string json)//反序列化 JsonConvert.SerializeObject(object obj) //序列化
參考文章 Newtonsoft.Json高級用法
使用JsonIgnore特性標簽
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; }
}首先構建一個json對象,描述了一個老師的實體,里面包含老師的基本屬性(名稱、年齡),所管理的班級屬性,所管理的班級的學生數組
{
"name": "張三",
"age": "10",
"classroom": {
"name": "1年級1班",
"desc": "描述"
},
"students": [
{
"age": "小名"
},
{
"age": "小紅"
}
]
}接下來我們使用Newtonsoftjson解析字符串并獲取到我們需要的信息
string jsonStr = "{\"name\":\"張三\",\"age\":\"10\",\"classroom\":{\"name\":\"1年級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());獲取班級信息
Console.WriteLine("classroom name is " + jObject["classroom"]["name"]);獲取學生信息
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("當前key不存在");
}項目開發中不管是前臺還是后臺都會遇到煩人的null,數據庫表中字段允許空值,則代碼實體類中對應的字段類型為可空類型Nullable<>,如int?,DateTime?,null值字段序列化返回的值都為null,前臺對應字段賦值需要做null值判斷,怎么才能全局把null替換為空。
.NET Core 處理 WebAPI JSON 返回煩人的null為空
“NewtonsoftJson的使用方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。