2017-05-02 87 views
0

如何在下面的JSON字符串中訪問url的值?使用Newtonsoft Linq訪問嵌套的JSON數據

JSON

{ 
    "id": "7453", 
    "picture": { 
     "data": { 
      "is_silhouette": false, 
      "url": "https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-1\/p50x50\/gf6474hfff.jpg?oh=fy&oe=trtr" 
     } 
    } 
} 

Dim o As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(json) 

我可以像這樣訪問id

o("id").ToString() 

所以我希望下面就爲url性質的工作,但我得到一個錯誤:

Object reference not set to an instance of an object

o("picture.data.url").ToString() 
+5

'O( 「圖片」)( 「數據」)( 「URL」)' - 它不會爲你解析字符串obj引用。在反序列化時通常更容易處理 – Plutonix

+1

如果將它粘貼到類似'jsonlint.com'的東西中,則更容易查看層次結構 – Plutonix

回答

1

你可以一次做一個。

Dim pic = o("picture")("data")("url") 

我也發現了,你也可以做Newtonsoft.Json另一種方法:

Dim pic = o.SelectToken("picture.data.url")