[c#]在 json.net 找到通过属性名称的值吗?

标签: Linq C#
发布时间: 2017/2/28 23:11:05
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有这个简单的 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"

可视化︰

enter image description here

是否可能通过 json Linq 做它?(Newtonsoft.Json.Linq.JObjec)

就像这个: (不工作/编译)

 JObject jt=   JObject.Parse(dataObjects);
 jt["results"].Where(f=>f.key=="address_components").Where(g=>g["types"].contains("country")).select(h=>h["long_name")

解决方法 1:

是的这是可能的。

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();
官方微信
官方QQ群
31647020