2016-11-10 54 views
3

獲得價值我有這樣的JSON:JSON.NET JObject - 如何從這個嵌套的JSON結構

{ 
    "client_id": "26075235", 
    "client_version": "1.0.0", 
    "event": "app.uninstall", 
    "timestamp": 1478741247, 
    "data": { 
     "user_id": "62581379", 
     "site_id": "837771289247593785", 
     "platform_app_id": "26075235" 
    } 
} 

我解析它變成一個JSON.NET JObject,我可以用成功訪問值的第一級例如(string)RequestBody.SelectToken(「client_id」)

如何使用JPath表達式(或通過訪問JSON.NET JObject的子對象)訪問「user_id」的值?這不起作用:

(string)RequestBody.SelectToken("data[0].user_id") 

,我不能這樣做解析JSON的「數據」部分:

JObject RequestBodyData = JObject.Parse((string)RequestBody.SelectToken("data")); 

因爲編譯器似乎認識到RequestBody.SelectToken(「數據「)作爲一個對象(我得到的錯誤'不能解析對象到字符串')

我不想解析原來的JSON到一個自定義的C#對象,因爲我正在開發一個解決方案,需要能夠將JSON解析爲JObject(或任何其他類型的用於處理JSON的通用對象),因此它可以是p以相對一致的方式進行。

回答

4

SelectToken("data[0].user_id")不起作用,因爲您的JSON中沒有數組。您應該改用SelectToken("data.user_id")

小提琴:https://dotnetfiddle.net/K0X4ht

+0

乾杯布賴恩:) –