一尘不染

我可以LINQ JSON吗?

json

这是我从.NET上的请求获取的JSON:

{
  "id": "110355660738", 
  "picture": {
    "data": {
      "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/1027085_12033235063_5234302342947_n.jpg", 
      "is_silhouette": false
    }
  }
}

我想使用LINQ来捕获字段“ url”。我有很多要求,有点不同。因此,我不会每次创建C#类并将其反序列化。

它是提取单个字段的一种方法吗?谢谢!


阅读 161

收藏
2020-07-27

共1个答案

一尘不染

无需Linq,只需使用dynamic(使用Json.Net

dynamic obj = JObject.Parse(json);
Console.WriteLine((string)obj.picture.data.url);

Linq版本不太可读

JObject jObj = JObject.Parse(json);
var url = (string)jObj.Descendants()
                    .OfType<JProperty>()
                    .Where(p => p.Name == "url")
                    .First()
                    .Value;

文档: LINQ to
JSON

2020-07-27