Skip to content

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

@jasonparallel

Description

@jasonparallel

@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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions