Browse Source

fix 620 (#693)

Co-authored-by: CindyChow123 <CindyChow123>
pull/732/head
Cincronic 3 years ago committed by GitHub
parent
commit
dc296b316a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java
  2. 73
      json-path/src/test/java/com/jayway/jsonpath/old/IssuesTest.java

3
json-path/src/main/java/com/jayway/jsonpath/internal/path/PathCompiler.java

@ -333,7 +333,8 @@ public class PathCompiler {
// we've encountered a COMMA do the same
case CLOSE_PARENTHESIS:
groupParen--;
if (0 != groupParen) {
//CS304 Issue link: https://github.com/json-path/JsonPath/issues/620
if (0 > groupParen ) {
parameter.append(c);
}
case COMMA:

73
json-path/src/test/java/com/jayway/jsonpath/old/IssuesTest.java

@ -1021,7 +1021,7 @@ public class IssuesTest extends BaseTest {
assertThat((String)doc.read("$.jsonArr[0].name")).isEqualTo("nOne");
assertThat((String)doc.read("$.jsonArr[1].name")).isEqualTo("Jayway");
}
@Test
public void issue_378(){
@ -1039,7 +1039,7 @@ public class IssuesTest extends BaseTest {
.jsonProvider(new JacksonJsonNodeJsonProvider())
.mappingProvider(new JacksonMappingProvider())
.build();
DocumentContext ctx = JsonPath.using(configuration).parse(json);
String path = "$.nodes[*][?(!([\"1.2.3.4\"] subsetof @.ntpServers))].ntpServers";
@ -1047,4 +1047,73 @@ public class IssuesTest extends BaseTest {
ctx.read(jsonPath);
}
//CS304 (manually written) Issue link: https://github.com/json-path/JsonPath/issues/620
@Test
public void issue_620_1(){
String json = "{\n" +
" \"complexText\": {\n" +
" \"nestedFields\": [\n" +
" {\n" +
" \"index\": \"0\",\n" +
" \"name\": \"A\"\n" +
" },\n" +
" {\n" +
" \"index\": \"1\",\n" +
" \"name\": \"B\"\n" +
" },\n" +
" {\n" +
" \"index\": \"2\",\n" +
" \"name\": \"C\"\n" +
" }\n" +
" ]\n" +
" }\n" +
"}";
String path1 = "$.concat($.complexText.nestedFields[?(@.index == '2')].name," +
"$.complexText.nestedFields[?(@.index == '1')].name," +
"$.complexText.nestedFields[?(@.index == '0')].name)";
String path2 = "$.concat($.complexText.nestedFields[2].name," +
"$.complexText.nestedFields[1].name," +
"$.complexText.nestedFields[0].name)";
assertThat((String)JsonPath.read(json,path1)).isEqualTo("CBA");
assertThat((String)JsonPath.read(json,path2)).isEqualTo("CBA");
}
//CS304 (manually written) Issue link: https://github.com/json-path/JsonPath/issues/620
@Test
public void issue_620_2(){
String json = "{\n" +
" \"complexText\": {\n" +
" \"nestedFields\": [\n" +
" {\n" +
" \"index\": \"0\",\n" +
" \"name\": \"A\"\n" +
" },\n" +
" {\n" +
" \"index\": \"1\",\n" +
" \"name\": \"B\"\n" +
" },\n" +
" {\n" +
" \"index\": \"2\",\n" +
" \"name\": \"C\"\n" +
" }\n" +
" ]\n" +
" }\n" +
"}";
String path1 = "$.concat($.complexText.nestedFields[?(@.index == '2')].name," +
"$.complexText.nestedFields[?((@.index == '1')].name," +
"$.complexText.nestedFields[?(@.index == '0')].name)";
boolean thrown = false;
try {
Object result = (Object) JsonPath.read(json,path1);
} catch (Exception e) {
thrown = true;
}
assertTrue(thrown);
}
}

Loading…
Cancel
Save