C# 对象的JSONPath

C# 对象的JSONPath,c#,json.net,C#,Json.net,我创建了这个jsonPath,如下所示: json.SelectTokens("$.children[?(@.extension == 'ord')].name"); 以下哪项适用于此Json: { "total":8, "page":1, "pages":1, "per_page":25, "previous":null, "next":null, "children":[ { "id":599071309, "name

我创建了这个jsonPath,如下所示:

json.SelectTokens("$.children[?(@.extension == 'ord')].name");
以下哪项适用于此Json:

{
  "total":8,
  "page":1,
  "pages":1,
  "per_page":25,
  "previous":null,
  "next":null,
  "children":[
      {
        "id":599071309,
        "name":"S200-219842-20180522095501.ord",
        "path":"/eOrdering/GRE017/S200-219842-20180522095501.ord",
        "url":"/api/2.1/path/info/eOrdering/GRE017/S200-219842-20180522095501.ord",
        "links":1,
        "remote_status":null,
        "size":98,
        "items":0,
        "time":"2018-05-23T11:29:48",
        "isfile":true,
        "isdir":false,
        "extension":"ord",
        "mime":"application/unknown",
      },
      {
        "id":599071327,
        "name":"S200-219846-20180522095501.ord",
        "path":"/eOrdering/GRE017/S200-219846-20180522095501.ord",
        "url":"/api/2.1/path/info/eOrdering/GRE017/S200-219846-20180522095501.ord",
        "links":1,
        "remote_status":null,
        "size":271,
        "items":0,
        "time":"2018-05-23T11:29:49",
        "isfile":true,
        "isdir":false,
        "extension":"ord",
        "mime":"application/unknown",
      }
  ],
  "has_preview":false,
  "version":0,
  "is_shared":false
}
但有时我会得到这个json:

{
  "total":2,
  "page":1,
  "pages":1,
  "per_page":25,
  "previous":null,
  "next":null,
  "size":3693,
  "items":0,
  "time":"2018-04-05T10:28:46",
  "isfile":false,
  "isdir":true,
  "children":[
    {
        "id":534206951,
        "name":"Inbox",
        "path":"/eOrdering/TAP006/Inbox",
        "url":"/api/2.1/path/info/eOrdering/TAP006/Inbox",
        "links":1,
        "remote_status":null,
        "size":0,
        "items":0,
        "time":"2017-10-17T07:50:08",
        "isfile":false,
        "isdir":true,
        "extension":"",
        "mime":"application/x-directory",
    }
  ]
}
因此,我想创建一个jsonPath表达式来检查子项是否是文件(通过检查isFile属性),如果是,那么它是否有扩展名。但我希望它忽略其他任何事情


有人知道怎么做吗?

我在创建它一分钟后就知道了。我刚刚将jsonPath更新为:

var names = json.SelectTokens("$.children[?(@.isfile == true && @.extension == '" + extension + "')].name");

就是这样,它开始正常工作。

Json路径选择某些Json节点,它不检查任何内容。那么你想选择什么呢?只有文件,只有扩展名还是别的?