我有这个简单的json响应:
{
"results": [
{
"address_components": [
{
"long_name": "277",
"short_name": "277",
"types": [
"street_number"
]
},
{
"long_name": "United States",
"short_name": "US",
"types": [
"country",
"political"
]
},
{
"long_name": "11211",
"short_name": "11211",
"types": [
"postal_code"
]
}
],
"formatted_address": "277 Bedford Avenue, Brooklyn, NY 11211, USA"
},
{
"a": 2
}
],
"status": "OK"
}
如何根据包含types
的(黄色)"country"
获取绿色值?
可视化:
是否可以通过json Linq来做到这一点? (Newtonsoft.Json.Linq.JObjec)
像这样的东西 psuedo :(没有工作/编译)
JObject jt= JObject.Parse(dataObjects);
jt["results"].Where(f=>f.key=="address_components").Where(g=>g["types"].contains("country")).select(h=>h["long_name")
答案 0 :(得分:5)
是的,这是可能的。
jt["results"].Children()
.Select(t => t["address_components"])
.Where(a => a != null)
.Children()
.Where(c => c["types"].Children().Contains("country"))
.Select(a => a["long_name"])
.ToArray();