C# 在Newtonsoft中的深层嵌套JSON中查找深层子元素的更简单方法?

C# 在Newtonsoft中的深层嵌套JSON中查找深层子元素的更简单方法?,c#,json.net,C#,Json.net,我有一个嵌套非常深的JSON文件,如下所示: { // many levels of nesting, from 10 to 50 items: [{ video: { // some data } }, { video: { // some data } }] } 我知道我可以使用json.SelectTokens(“long path here”)来选择那些video元素。但是,当您想要处理到处都是嵌套的JSON文件时,它既不高效,也不利

我有一个嵌套非常深的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和该方法搜索嵌套对象

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

{“id”:1,“title”:“Video 1”}


在我看来,一种更简单的方法是使用SelectToken/SelectTokens,它使用JSONPath深入查看对象

var video = o.SelectToken("$.items[?(@.id == 1)]");
有关更多信息,请阅读以下内容:


您可以将json反序列化为动态类型并使用反射。
var video = o.SelectToken("$.items[?(@.id == 1)]");