in src/main/java/org/apache/sling/pipes/internal/inputstream/JsonPipe.java [97:126]
public Iterator<Resource> getOutput(InputStream is) {
Iterator<Resource> output = EMPTY_ITERATOR;
Iterator<Resource> inputSingletonIterator = Collections.singleton(getInput()).iterator();
try {
String jsonString = IOUtils.toString(is, StandardCharsets.UTF_8);
if (StringUtils.isNotBlank(jsonString)) {
JsonStructure json;
json = JsonUtil.parse(jsonString);
if (json == null) {
binding = jsonString.trim();
output = inputSingletonIterator;
} else {
String valuePath = properties.get(PN_VALUEPATH, String.class);
if (StringUtils.isNotBlank(valuePath)) {
json = getValue(json, bindings.instantiateExpression(valuePath));
}
if (isRaw() || !(json.getValueType() == ValueType.ARRAY || json.getValueType() == ValueType.OBJECT)) {
binding = JsonUtil.unbox(json);
output = inputSingletonIterator;
} else {
binding = json;
output = internalIterator = new JsonBindingIterator(json, getInput());
}
}
}
} catch (IOException e) {
throw new IllegalArgumentException(e);
}
return output;
}