C# 对象的JSONPath
我创建了这个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
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节点,它不检查任何内容。那么你想选择什么呢?只有文件,只有扩展名还是别的?