From 2572cbab027abf766d183d7abc58b0d92ea88487 Mon Sep 17 00:00:00 2001 From: kysnm Date: Wed, 21 Sep 2016 02:20:27 +0900 Subject: [PATCH] Property must be separated by commas --- .../java/com/jayway/jsonpath/internal/path/PathCompiler.java | 3 +++ .../src/test/java/com/jayway/jsonpath/PathCompilerTest.java | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java b/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java index 4d003dc7..b1e142c0 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java @@ -576,6 +576,9 @@ public class PathCompiler { break; } else if (c == potentialStringDelimiter) { if (inProperty && !inEscape) { + if (!path.nextSignificantCharIs(readPosition, COMMA) && !path.nextSignificantCharIs(readPosition, CLOSE_SQUARE_BRACKET)) { + fail("Property must be separated by comma or Property must be terminated close square bracket at index "+readPosition); + } endPosition = readPosition; String prop = path.subSequence(startPosition, endPosition).toString(); properties.add(Utils.unescape(prop)); diff --git a/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java b/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java index 60a5ba83..699ba631 100644 --- a/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java +++ b/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java @@ -266,4 +266,9 @@ public class PathCompilerTest { public void accept_only_a_single_comma_between_indexes() { compile("$['1', ,'3']"); } + + @Test(expected = InvalidPathException.class) + public void property_must_be_separated_by_commas() { + compile("$['aaa'}'bbb']"); + } }