jsonpath表达式

kzmpq1sx  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(231)

我这里有一个java代码。我在json中有3条记录。我想要一个jsonpath来匹配第一条记录(id=1)。但是如果数组在field1(id=1)下,它将不匹配。但是如果一个对象在field1(id=3)下,它可以匹配。我的问题是,是否有任何方法可以从我的代码中匹配id=1?谢谢。

  1. import com.jayway.jsonpath.Filter;
  2. import com.jayway.jsonpath.JsonPath;
  3. import java.util.*;
  4. import static com.jayway.jsonpath.Criteria.where;
  5. public class Test {
  6. public static void main(String[] args) {
  7. List valueAsList = new ArrayList<>();
  8. Map map1 = new LinkedHashMap();
  9. map1.put("field1",List.of(Map.of("a", "match","id","1")));
  10. valueAsList.add(map1);
  11. map1 = new LinkedHashMap();
  12. map1.put("field1",List.of(Map.of("a", "notMatch","id","2")));
  13. valueAsList.add(map1);
  14. map1 = new LinkedHashMap();
  15. map1.put("field1",Map.of("a", "match","id","3"));
  16. valueAsList.add(map1);
  17. Object ret = null;
  18. ret = JsonPath.parse(valueAsList).read("$[?]", Filter.filter(where("field1[*].a").eq("match")));
  19. System.out.println(ret);
  20. ret = JsonPath.parse(valueAsList).read("$[?]", Filter.filter(where("field1.a").eq("match")));
  21. System.out.println(ret);
  22. }
  23. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题