我有一个非常深层嵌套的JSON文件,如下所示:

{
   // many levels of nesting, from 10 to 50
   items: [{
       video: { // some data }
   }, {
       video: { // some data }
   }]
}


我知道我可以使用json.SelectTokens("long path here")选择那些video元素。但是,当您想在各处使用大量嵌套的JSON文件时,效率不高且对开发人员不友好。

我们是否有其他更简单的替代路径,例如CSS选择器?

最佳答案

您可以使用LINQ和Descendants方法搜索嵌套对象。

const string json = @"{
    items: [{
        video: { id: 1, title: 'Video 1' }
    }, {
        video: { id: 2, title: 'Video 2' }
    }]
}";

var videos = JObject.Parse(json)
    .Descendants()
    .Where(x => x is JObject && x["id"] != null)
    .ToList();

var video = videos.Find(x => (int) x["id"] == 1);


从上面执行代码时,video变量包含以下内容:


  { "id": 1, "title": "Video 1" }

关于c# - 在Newtonsoft中深度嵌套的JSON中找到深度子元素的更简单方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55138372/

10-13 06:30