獲取Json中特定的值


 

假如我們得到了一個json的數據:json===》   {"Head":{"TransCode":"X1009","TransId":"20190514145005iQXk"},"Body":{"OrderSN":"95131406006","WHSE":"aaaaa","SNs":[{"SN":"HCMPFD000621"},{"SN":"1212122"}]}}

類似這樣。我們要取出來里面特定的值,而且,SNs還是一個集合。

方法如下:

string OrderSn = json["Body"]["OrderSN"].ToString();
string WHSE = json["Body"]["WHSE"].ToString();
string SNs = json["Body"]["SNs"].ToString();

SNs是一個集合,怎么取出來呢:

將json字符串解析為JToken,JObject是JToken的父類,直接使用JToken比較好用

 dynamic Sns =JToken.Parse(SNs) as dynamic

 

  for (int i = 0; i < Sns.Count; i++)//獲取備注里的SN
   {

     if (Sns[i].SN.ToString() != "")
      {
        str += Sns[i].SN.ToString() + ",";
      }
    }

 

 這樣子就可以循環出來里面的值了。

1  HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
2                 string response = string.Empty;
3                 using (StreamReader reader = new StreamReader(httpWebResponse.GetResponseStream()))
4                     response = reader.ReadToEnd(); 
5 
6                 var j = JObject.Parse(response);
7                 string shop_name = j["Success"]["items"]["item"][0]["shop_name"].ToString();//獨一味日化旗艦店、、、一層層的層級關系

 

{
	"Success": {
		"total_results": "1",
		"items": {
			"item": [{				
				"shop_name": "獨一味日化旗艦店",				
				"serial_num": "",
				"order_channel": "直營網店",			
				"updatetime": "",
				"總數量": "3739",
				"maxrowver": "",
				"tid_item": [{
					"storage_id": "1",
					"tid": "S17fdgfgfg0349",
					"pro_detail_code": "191",					
					"book_inventory": "-5.000",					
					"store_location": "",
					"pro_type": "原始產品"
				}, {
					"storage_id": "1",
					"tid": "S1712220000349",
					"pro_detail_code": "152",					
					"book_inventory": "-4.000",					
					"store_location": "",
					"pro_type": "原始產品"
				}]
			}]
		}
	}
}

  上面這個是其他的廠商返回的一個Json格式的數據,現在可以是Json嵌套的還挺多,其中的一個項次還有數組,現在就是把這些數據撈出來存下來。

                var j = JObject.Parse(response);
//這個就是主干的值 string shop_name = j["Success"]["items"]["item"][0]["shop_name"].ToString();//獨一味日化旗艦店 string tid_item = j["Success"]["items"]["item"][0]["tid_item"].ToString();
//下面是獲取數組的名細可以取出來值 JArray jArray = JArray.Parse(tid_item); for (int i = 0; i < jArray.Count; i++) { JObject jdata = (JObject)jArray[i]; string pro_detail_code = jdata["pro_detail_code"].ToString(); }

  

  //將數據動態插入到數組中去               
JArray jArray = JArray.Parse(tid_item); JArray arr = new JArray(); for (int i = 0; i < jArray.Count; i++) { JObject obj = new JObject(); JObject jdata = (JObject)jArray[i]; obj["linenum"] = jdata["cost_price"].ToString(); obj["sku"] = jdata["sell_price"].ToString(); obj["qty"] = jdata["original_price"].ToString(); obj["inventoryname"] = jdata["sys_price"].ToString(); obj["price"] = jdata["product_name"].ToString(); arr.Add(obj); } var rss = new JObject { {"Head",new JObject { {"TransCode","X1009" }, {"TransId",1212} } }, { "Body", new JObject { {"orderno", "orderno" }, {"billto","billto"}, {"shipto", "shipto"}, {"workid", "workid"}, {"tocity", "tocity"}, {"Address", "Address"}, {"Contact", "Contact"}, {"Tel", "Tel"}, {"detail", arr } } } };

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM