Browse Source

Added read method with typeRef and predicates.

pull/797/head
mdeswijger 3 years ago
parent
commit
0aa28609de
  1. 16
      json-path/src/main/java/com/jayway/jsonpath/ReadContext.java
  2. 7
      json-path/src/main/java/com/jayway/jsonpath/internal/JsonContext.java

16
json-path/src/main/java/com/jayway/jsonpath/ReadContext.java

@ -107,6 +107,22 @@ public interface ReadContext {
*/
<T> T read(String path, TypeRef<T> typeRef);
/**
* Reads the given path from this context
*
* Sample code to create a TypeRef
* <code>
* TypeRef ref = new TypeRef<List<Integer>>() {};
* </code>
*
* @param path path to apply
* @param typeRef expected return type (will try to map)
* @param <T>
* @param filters filters
* @return result
*/
<T> T read(String path, TypeRef<T> typeRef, Predicate... filters);
/**
* Stops evaluation when maxResults limit has been reached
* @param maxResults

7
json-path/src/main/java/com/jayway/jsonpath/internal/JsonContext.java

@ -103,6 +103,11 @@ public class JsonContext implements DocumentContext {
return convert(read(path), type, configuration);
}
@Override
public <T> T read(String path, TypeRef<T> type, Predicate... filters) {
return convert(read(path, filters), type, configuration);
}
@Override
public ReadContext limit(int maxResults) {
return withListeners(new LimitingEvaluationListener(maxResults));
@ -225,7 +230,7 @@ public class JsonContext implements DocumentContext {
return jsonPath;
}
private final static class LimitingEvaluationListener implements EvaluationListener {
private static final class LimitingEvaluationListener implements EvaluationListener {
final int limit;
private LimitingEvaluationListener(int limit) {

Loading…
Cancel
Save