fix: accept single-quoted string args in path functions (#1078) - #1080
Open
arimu1 wants to merge 1 commit into
Open
fix: accept single-quoted string args in path functions (#1078)#1080arimu1 wants to merge 1 commit into
arimu1 wants to merge 1 commit into
Conversation
Recognize single-quoted string literals as JSON function parameters and track the active quote delimiter so mixed quotes group correctly. Normalize single-quoted literals to double-quoted JSON for strict providers (e.g. Jackson). Fixes json-path#1078
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Fixes #1078
Path function argument parsing only treated double-quoted strings as JSON parameters. Single-quoted string args were dropped (
$.concat('hello')→ empty) or corrupted when mixed with path args ($.concat($.x,'-',$.y)→P-'Q). Filter predicates already accept single quotes.Changes
SINGLE_QUOTElike a JSON parameter starter inPathCompiler.parseFunctionParameters"it's") still group correctlyJsonProvider.parse, so strict providers (Jackson, Jakarta JSON, etc.) accept themTests
NestedFunctionTest.testStringConcatWithSingleQuotedJSONParametercovers standalone, mixed path+literal, and double-quoted apostrophe cases across all configured providersTest plan
./gradlew :json-path:test --tests com.jayway.jsonpath.internal.function.NestedFunctionTest.testStringConcatWithSingleQuotedJSONParameter(Temurin 21)./gradlew :json-path:testfull module suite (Temurin 21)