Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取无法编译内联筛选器:<;带查询的Jsonpath>;_Java_Python_Json_Jsonpath - Fatal编程技术网

Java 获取无法编译内联筛选器:<;带查询的Jsonpath>;

Java 获取无法编译内联筛选器:<;带查询的Jsonpath>;,java,python,json,jsonpath,Java,Python,Json,Jsonpath,我试图使用带有json路径的查询来获取json数组 我曾经遵循maven repo 我使用了maven的com.jayway.jsonpath 2.4.0版 Json是: { "verdict": [ { "firstSeenOn": "2015-01-21T07:56:00.000+0000", "lastSeenOn": "2019-05-14T14:35:00.000+0000", "reput

我试图使用带有json路径的查询来获取json数组 我曾经遵循maven repo

我使用了maven的com.jayway.jsonpath 2.4.0版

Json是:

{
    "verdict": [
        {
            "firstSeenOn": "2015-01-21T07:56:00.000+0000",
            "lastSeenOn": "2019-05-14T14:35:00.000+0000",
            "reputationStatus": "KNOWN",
            "scannerCount": 43,
            "scannerPercentage": 2,
            "threatLevel": 0,
            "trustFactor": 2,
            "sha256": "b80ff3bb189960738bc94973c7bc25e541c1bdff5b9c1c69973a13345ffbc3c3"
        },
        {
            "reputationStatus": "UNKNOWN",
            "scannerCount": 0,
            "scannerPercentage": 0,
            "threatLevel": 0,
            "trustFactor": 0,
            "sha256": "06a4feb0ff348dc5a8951b7f20e5dbf30d733ff2ecf6f204fd55fb8348c99e85"
        }


    ]

}
我使用了json路径:

$.verdict.[?(@.["reputationStatus"]=="KNOWN")].sha256
错误是

com.jayway.jsonpath.InvalidPathException: Could not compile inline filter : [?(@.["reputationStatus"]=="KNOWN")]
    at com.jayway.jsonpath.internal.filter.FilterCompiler.compile(FilterCompiler.java:47)
    at com.jayway.jsonpath.internal.path.PathCompiler.readFilterToken(PathCompiler.java:255)
    at com.jayway.jsonpath.internal.path.PathCompiler.readNextToken(PathCompiler.java:107)




    ... 34 common frames omitted
Caused by: com.jayway.jsonpath.InvalidPathException: Could not parse token starting at position 2. Expected ?, ', 0-9, * 
    at com.jayway.jsonpath.internal.path.PathCompiler.fail(PathCompiler.java:387)
    at com.jayway.jsonpath.internal.path.PathCompiler.readNextToken(PathCompiler.java:109)



正确的Json路径是

$判决[?(@.声誉状态==“已知”)].sha256

返回

[
  "b80ff3bb189960738bc94973c7bc25e541c1bdff5b9c1c69973a13345ffbc3c3"
]
编辑: 我尝试使用jsonpath库,两个json路径表达式都给出了正确的输出

import com.jayway.jsonpath.jsonpath;
导入net.minidev.json.JSONArray;
公共类JsonPathExample{
私有静态最终字符串json=“json字符串”;
公共静态void main(字符串[]args){
JSONArray输出=JsonPath.read(json,“$.verdict[?(@.reputationStatus==\”已知“)).sha256”);
System.out.println(output.toJSONString());
JSONArray output2=JsonPath.read(json,“$.verdict.[?”(@.[\“声誉状态\]”]==“已知\”).sha256”);
System.out.println(output2.toJSONString());
}
}

$.verdict.[(@.[“声誉状态”]=“已知”)].sha256这也在工作,但运行时失败
$.verdict.[(@.[“声誉状态”]=“已知”)].sha256对我不起作用。
$.verdict[?(@.reputationStatus==“已知”)].sha256如何处理您的代码?我已经用java代码更新了我的答案。两个jsonpath表达式都工作正常。请用您的代码更新您的问题。代码是组织代码,我无法在此处共享。感谢您的共享,我需要做一些小更改