【解決方案】C#使用Newtonsoft解析JSON字符串

在很多涉及到網絡通訊的地方,往往會用到JSON,初次接觸這個東西,真的很令人頭痛。不過有了Newtonsoft,這一切就變得出奇地簡單:
現在有下面一段JSON,如何解析呢?

{
  "class": "apiClass",
  "cmd": "apiCommand",
  "param": {
    "param1": "param1",
    "param2": "param2"
  },
  "jarray": [
    {
      "arr1": "this is arr1"
    },
    {
      "arr1": "this is arr2"
    }
  ]
}

1、提取cmd的值

JObject jObject = JObject.Parse(JSON字符串);
String cmd=jObject["cmd"].ToString();

是不是超級簡單?
2、提取param1的值

JObject jObject = JObject.Parse(JSON字符串);
String param1=jObject["param"]["param1"].ToString();

是不是一樣超級簡單?
3、提取數組中第一項arr1的值,index=1

JObject jObject = JObject.Parse(JSON字符串);
String arr1=jObject["jarray"][1]["arr1"].ToString();

把數據中每一個都取出來一下

JObject jObject = JObject.Parse(JSON字符串);
JArray jArray=JArray.Parse(jObject["jarray"].ToString());
foreach(var arr in jArray)
{
   JObject jObj = JObject.Parse(arr.ToString());
   String arr1=jObj["arr1"].ToString();
}

4、如果某個Key不存在,怎麼辦呢?

JObject jObject = JObject.Parse(JSON字符串);
if (jObject.Property("我的Key") != null)
{
    String 我的Key= jObject["我的Key"].ToString();
}
else
{
   //我的Key不存在
}

好啦,現在看到這裏,Newtonsoft,應該都會用啦。有疑問的話,歡迎給我留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章