NewtonsoftJson的使用整理

關於我

個人博客 | 歡迎關注html

引言

json是咱們在工做中常常用到的一種數據傳輸格式,開始過程當中解析json是咱們常常面對的問題。NewtonsoftJson是c#的一套json處理封裝類,它能夠高效,方便地幫助咱們處理json。程序員

NetonSoftJson提供了完整的使用文檔,文檔地址以下:Json.NET Documentation數據庫

NetonSoftJson的不一樣使用場景

經常使用方法 序列化和反序列化

這應該是咱們最經常使用的倆個方法了json

JsonConvert.DeserializeObject<T>(string json)//反序列化
JsonConvert.SerializeObject(object obj) //序列化

高級特性

參考文章 Newtonsoft.Json高級用法c#

某些字段不想被反序列化

使用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());

獲取班級信息ui

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不存在");
}

WebApi下的應用

項目開發中無論是前臺仍是後臺都會遇到煩人的null,數據庫表中字段容許空值,則代碼實體類中對應的字段類型爲可空類型Nullable<>,如int?,DateTime?,null值字段序列化返回的值都爲null,前臺對應字段賦值須要作null值判斷,怎麼才能全局把null替換爲空。

.NET Core 處理 WebAPI JSON 返回煩人的null爲空

總結

Json的使用遠不止於此,做者只是針對本身到如今爲止工做中常見的問題進行一個整理,後續也會慢慢補充新的內容,將文章不斷地更新優化。

The END

本文到此結束,但願對你有幫助 😃

更多精彩 技術文章彙總在個人 公衆號程序員工具集 ,持續更新,歡迎關注訂閱收藏。

若是還有什麼疑問或者建議,能夠多多交流,原創文章,文筆有限,才疏學淺,文中如有不正之處,萬望告知。

福利姬

公衆號後臺回覆:「關注禮包」,獲取價值5K的視頻學習資源

公衆號後臺回覆:「技能圖譜」,送你一份最全的開發者技能圖譜

相關文章
相關標籤/搜索