检查多个存在条件,JSONpath

时间:2016-11-05 02:49:49

标签: json jsonpath

鉴于下面的JSON:

{
    "store": {
        "book": [
            {
                "author": "Nigel Rees",
                "title": "Sayings of the Century"
            },
            {
                "category": "fiction",
                "title": "Sword of Honour",
                "price": 12.99
            } 
        ]
}

如何构建JSON路径以检索具有bookcategoryprice元素的title元素?我已经尝试$.store.book[?(@.price && @.category && @.title)]但是这不起作用(似乎那种谓词不允许多个条件)。有任何想法吗?这是一个方便的测试人员的链接:https://jsonpath.curiousconcept.com/

1 个答案:

答案 0 :(得分:0)

我无法找到使用内联过滤器执行此操作的方法。但是,可以使用过滤器对象:

Filter f = filter(where("price").exists(true).and(where("category").exists(true).and(where("titles").exists(true));

致电阅读:JsonPath.read(json, "$.store.book[?]", f);