Go down into all children, whether fields or array elements.
Go down into all children, whether fields or array elements. If a current point is not a com.rojoma.json.v3.ast.JObject or com.rojoma.json.v3.ast.JArray, it is dropped.
Go down (as by *
) and then add every descendant of the current
points to the set of points (as by rec
).
Go down into the given index.
Go down into the given index. If a current point is not a com.rojoma.json.v3.ast.JArray, or does not contain the index, it is dropped.
Go down into the named field.
Go down into the named field. If a current point is not a com.rojoma.json.v3.ast.JObject, or does not contain the field, it is dropped.
Go down into the first child of an array.
Go down into the first child of an array. If a current point is not a com.rojoma.json.v3.ast.JArray, it is dropped.
Go down into the last child of an array.
Go down into the last child of an array. If a current point is not a com.rojoma.json.v3.ast.JArray, it is dropped.
Go down into all children (as by *
) and then filter by
a predicate (as by where
).
Produce a Stream
of com.rojoma.json.v3.ast.JValues, one
for each current point.
Filter the current set of points by applying another JPath operation to them and keeping only the ones that ended up with a non-empty set of results.
Filter the current set of points by applying another JPath operation to them and keeping only the ones that ended up with a non-empty set of results.
This is basically mark-and-return. E.g.,
x.having(_.down("foo").*.where(isNumberGreaterThan(5)))
is the same as:
x.down("foo").*.where(isNumberGreaterThan(5)).up.up
but also works if one of the inner steps is "rec", where
no fixed number of final up
steps would suffice.
Move to the next sibling.
Move to the next sibling. Any points that were at the end already, or which were not children of com.rojoma.json.v3.ast.JArrays, will be dropped.
Move to the previous sibling.
Move to the previous sibling. Any points that were at the start already, or which were not children of com.rojoma.json.v3.ast.JArrays, will be dropped.
Add every descendant of the current points to the set of points.
Go up to the parents of the current points.
Go up to the parents of the current points. Any that were already at the top of the tree will be dropped.
Filter the set of current points by a predicate.
A high-level interface for walking down a tree defined by a com.rojoma.json.v3.ast.JValue, returning a set of sub-values that match a path defined by a series of steps.