Steps to reproduce
Example JSON:
{
"a": {
"size": 15
},
"b": {
"size": 20
},
"c": {
"size": 10
}
}
Queries:
$[?(@.size > 13)]
$.*[?(@.size > 13)]
Code:
String json = "..."; // see JSON file above
Collector collector = JsonSurferJackson.INSTANCE.collector(json);
ValueBox<Collection<Object>> first = collector.collectAll("$[?(@.size > 10)]");
ValueBox<Collection<Object>> second = collector.collectAll("$.*[?(@.size > 10)]");
collector.exec();
System.out.println(first.get());
System.out.println(second.get());
Expected
The queries $.*[?(@.size > 13)] and $[?(@.size > 13)] return an array of two items:
[ { "size": 15 }, { "size": 20 } ]
Actual
Both queries return an empty array:
Note
The queries $.* and $[*] return an array of all three items:
[
"a": {
"size": 15
},
"b": {
"size": 20
},
"c": {
"size": 10
}
]
So I would expect that a filter after a wildcard is working fine.
Environment
JsonSurfer 1.6.0 + Jackson Parser + Jackson Provider.
Steps to reproduce
Example JSON:
Queries:
Code:
Expected
The queries
$.*[?(@.size > 13)]and$[?(@.size > 13)]return an array of two items:Actual
Both queries return an empty array:
Note
The queries
$.*and$[*]return an array of all three items:So I would expect that a filter after a wildcard is working fine.
Environment
JsonSurfer 1.6.0 + Jackson Parser + Jackson Provider.