1. 程式人生 > >不規則的JSON解析(一)

不規則的JSON解析(一)

log 實體 實體類 order blog 不規則 serial val lai

現有如下數據結構:

{ "orderId":"000001", "goodsId[0]":"001", "goodsId[2]":"002", "goodsId[3]":"003", }

goodsId 是無限延伸下去的,問如何解析。

顯然,定義類然後解析的思路肯定行不通,即使用dynamic(不需要定義實體類,直接取對應key的值),如: dynamic obj = JsonConvert.DeserializeObject(json); 這樣也不行,原因是obj.orderId可以表示,但後面的帶有[]的,無法取出。

因此我們必須要換個思路。通過轉換為JObject對象的屬性Property,獲取對應的Value,因此代碼如下。

 string json = "{\"orderId\":\"000001\",\"goodsId[0]\":\"001\",\"goodsId[3]\":\"003\",\"goodsId[10]\":\"new data\"}";
 JObject jsonObj = JsonConvert.DeserializeObject(json) as JObject;
 foreach (var p in jsonObj.Properties().ToArray())
     Console.WriteLine("key={0}, value={1}",
         p.Name, jsonObj[p.Name].Value
<string>());

不規則的JSON解析(一)