程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 用Newtonsoft將json串轉為對象的方法(詳解)

用Newtonsoft將json串轉為對象的方法(詳解)

編輯:C#入門知識

用Newtonsoft將json串轉為對象的方法(詳解)。本站提示廣大學習愛好者:(用Newtonsoft將json串轉為對象的方法(詳解))文章只能為提供參考,不一定能成為您想要的結果。以下是用Newtonsoft將json串轉為對象的方法(詳解)正文


首先,將json串轉為一個JObject對象:

JObject jo = (JObject)JsonConvert.DeserializeObject(CurrentSelectedItemReq);

這個JObject是一個“值對”類型,比如說我們的json串是這樣:

{
 "rows":[
  [
   {"NumIid":"001"},
   {"PicUrl":"xxx.png"},
   {"Title":"xxxxx"},
   {"Price":"xxx"},
   {"OuterId":"xxxx"} 
  ],
  [
   {"NumIid":"002"},
   {"PicUrl":"xxx.png"},
   {"Title":"xxxxx"},
   {"Price":"xxx"},
   {"OuterId":"xxxx"} 
  ],
  [
   {"NumIid":"003"},
   {"PicUrl":"xxx.png"},
   {"Title":"xxxxx"},
   {"Price":"xxx"},
   {"OuterId":"xxxx"} 
  ]
  ]
}

那麼可以jo["rows"]就是一個數組,如果這個反之如果不是數組可能是一個對象,那麼我們根據他實際是一個什麼值來進行強制轉換。

以上面這個json串為例,我們這樣取到這個數組:

JArray arr = (JArray)jo["rows"];

我們發現這個數組裡面還是一個數組,而裡層數組裡面才是一個object,那麼我們可以這樣取:

for (int i = 0; i < arr.Count; i++) 
    {
      JArray arr2 = (JArray)arr[i];
      for (int j = 0; j < arr2.Count; j++) 
      {
        JObject obj = (JObject)arr2[j];

        Response.Write(obj["NumIid"]);
        Response.End();
      }
        
    }

如果實際是一個數組,我們就用JArray強制轉換,如果實際是一個值對,我們就用JObject強制轉換。

最後一層應該是一個值對類型的object,怎麼把這些值全部取出來?

最後應該是形如:

{"NumIid":"003"}

取值很簡單,直接:

string str=obj["NumIid"];

問題是有時候這個obj是這樣的:

{"PicUrl":"xxx.png"}

而且你不知道他什麼時候是什麼。

這時應該這樣取:

foreach (KeyValuePair<string, JToken> kp in obj) 
        {
          Response.Write(kp.Key);
          Response.Write("=");
          Response.Write(kp.Value);
          Response.End();
        }

以上這篇用Newtonsoft將json串轉為對象的方法(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved