有效的 jsonpath 给出 UnsupportedOperationException,无法解析 CriteriaType

Valid jsonpath gives UnsupportedOperationException, CriteriaType can not be parsed

提问人:user3419148 提问时间:5/3/2019 最后编辑:user3419148 更新时间:5/8/2019 访问量:151

问:

这个 JsonPath

$.accounts[?('abc' in @.contact_ids)].user_id

在 Java 中运行时出现错误:

com.jayway.jsonpath.InvalidPathException:java.lang.UnsupportedOperationException:无法解析 CriteriaType

但在使用 Jayway 实现的 https://jsonpath.herokuapp.com/ 上工作完美。

异常跟踪:

at com.jayway.jsonpath.internal.PathCompiler.compile(PathCompiler.java:157)
at com.jayway.jsonpath.JsonPath.<init>(JsonPath.java:99)
at com.jayway.jsonpath.JsonPath.compile(JsonPath.java:426)
at com.jayway.jsonpath.internal.JsonReader.read(JsonReader.java:135)
Caused by: java.lang.UnsupportedOperationException: CriteriaType  can not be parsed
    at com.jayway.jsonpath.Criteria$CriteriaType.parse(Criteria.java:333)
    at com.jayway.jsonpath.Criteria.create(Criteria.java:807)
    at com.jayway.jsonpath.Criteria.parse(Criteria.java:755)
    at com.jayway.jsonpath.Filter.parse(Filter.java:175)
    at com.jayway.jsonpath.internal.PathCompiler$PathComponentAnalyzer.analyzeCriteriaSequence4(PathCompiler.java:284)
    at com.jayway.jsonpath.internal.PathCompiler$PathComponentAnalyzer.analyze(PathCompiler.java:262)
    at com.jayway.jsonpath.internal.PathCompiler$PathComponentAnalyzer.analyze(PathCompiler.java:236)
    at com.jayway.jsonpath.internal.PathCompiler.compile(PathCompiler.java:145)
    ... 37 more

示例 json 是这样的,尽管错误与 json 无关:

{
  "accounts": [
    {
      "user_id": "[email protected]",
      "contact_ids": [
        "101",
        "102",
        "103",
        "104",
        "114",
        "115",
        "123"
      ]
    },
    {
      "user_id": "[email protected]",
      "contact_ids": [
        "135",
        "156",
        "159"
      ]
    }]}
Java JSON路径

评论

2赞 Michał Krzywański 5/3/2019
你能和我们分享样本json吗?
0赞 Aaron 5/3/2019
还有你用来表示 JSONPath 的 java 代码

答:

-1赞 user3419148 5/8/2019 #1

请忽略。在我的项目中,我对 2.0 版有一个悬而未决的依赖关系。