使用Newtonsoft Linq访问嵌套的JSON数据

问题描述:

如何在下面的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

你可以一次做一个。

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

我也发现了,你也可以做Newtonsoft.Json另一种方法:

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