fix: entries() use names as keys - name to key escape rules #62
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Two main fixes
JsonObject#entries()
method needs to use names (not keys) as theirMap.Entry
keys (for consistency withJsonNode#entries()
and the general logic that if you get both path and value together the paths are plain/raw)JsonPath#keysOf
needed more logic to correctly decide when and how to escape the given plain/raw name to correctly handle names which contain valid curly segments (like OpenAPI paths do when they contain a path variable like{uid}
)Also this adds new
paths()
methods to access theJsonPath
segments of a node or value. This was an obvious method that got forgotten in the PR introducing theJsonPath
concept.