Browse Source

Not creating an intermediate list for iterable (#791)

* Not creating an intermediate list for iterable

* Inlined new iterable class

* Inlined new iterable class

* Refactored code a bit
pull/797/merge
Rishabh 2 years ago committed by GitHub
parent
commit
2e6b43e688
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 23
      json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java

23
json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java

@ -93,7 +93,6 @@ public class JacksonJsonNodeJsonProvider extends AbstractJsonProvider {
}
public Object unwrap(Object o) {
if (o == null) {
return null;
}
@ -230,11 +229,23 @@ public class JacksonJsonNodeJsonProvider extends AbstractJsonProvider {
@Override
public Iterable<?> toIterable(Object obj) {
ArrayNode arr = toJsonArray(obj);
List<Object> values = new ArrayList<Object>(arr.size());
for (Object o : arr) {
values.add(unwrap(o));
}
return values;
Iterator<?> iterator = arr.iterator();
return new Iterable<Object>() {
@Override
public Iterator<Object> iterator() {
return new Iterator<Object>() {
@Override
public boolean hasNext() {
return iterator.hasNext();
}
@Override
public Object next() {
return unwrap(iterator.next());
}
};
}
};
}
private JsonNode createJsonElement(Object o) {

Loading…
Cancel
Save