用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串轉為對象的方法(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。