Browse Source

Merge c29ab1a7bb into 45333e0a31

pull/859/merge
ZhouFeng 2 months ago committed by GitHub
parent
commit
009d8bb40a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java
  2. 28
      json-path/src/test/java/com/jayway/jsonpath/Issue_857.java

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

@ -82,7 +82,8 @@ public abstract class PathToken {
PathRef pathRef = ctx.forUpdate() ? PathRef.create(model, property) : PathRef.NO_OP;
if (isLeaf()) {
String idx = "[" + String.valueOf(upstreamArrayIndex) + "]";
if(idx.equals("[-1]") || ctx.getRoot().getTail().prev().getPathFragment().equals(idx)){
if(idx.equals("[-1]") || ctx.getRoot().getTail().prev().getPathFragment().equals(idx) ||
ctx.getRoot().getTail().prev().getPathFragment().equals("[*]")){
ctx.addResult(evalPath, pathRef, propertyVal);
}
}

28
json-path/src/test/java/com/jayway/jsonpath/Issue_857.java

@ -0,0 +1,28 @@
package com.jayway.jsonpath;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
/**
* @author skwqyg
* @Created on 2022 09 2022/9/10 16:36
*/
public class Issue_857 extends BaseTest{
@Test
public void test(){
Collection values = JsonPath.parse("[{\"key\":\"first value\"},{\"key\":\"second value\"}]")
.read("$..[*].key", java.util.Collection.class);
Assert.assertEquals(2,values.size());
Set<String> expect = new HashSet<>();
expect.add("first value");
expect.add("second value");
Assert.assertTrue(expect.containsAll(values));
System.out.println(values);
}
}
Loading…
Cancel
Save