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

Loading…
Cancel
Save