List<Map<String,Object>>books=JsonPath.parse(json) .read("$.store.book[?(@.price < 10)]"); You can use&∧||to combine multiple predicates[?(@.price < 10 && @.category == 'fiction')],[?(@.category == 'reference' || @.price > 10)]. ...