#1071·JsonPath

JsonPath getPath does not fully reflect path due to PredicatePathToken getPathFragment() dropping the predicate

Author: jasonparallelCreated Feb 19, 2026Updated Feb 19, 2026

@Test void predicatePathTokenToStringTest() { final String expression = "$.store.book[?(@.title == 'Book A')].price"; JsonPath p = JsonPath.compile(expression); assertThat(p.getPath()).isEqualTo(expression); }

Yields org.opentest4j.AssertionFailedError: expected: "$.store.book[?(@.title == 'Book A')].price" but was: "$['store']['book'][?]['price']"

Due to PredicatePathToken getPathFragment() simply printing [?]

@Override public String getPathFragment() { StringBuilder sb = new StringBuilder(); sb.append("["); for(int i = 0; i < predicates.size(); i++){ if(i != 0){ sb.append(","); } sb.append("?"); } sb.append("]"); return sb.toString(); }

Is this intentional