in src/main/java/org/apache/sling/jcr/contentparser/impl/JsonContentParser.java [164:201]
private Object convertValue(JsonValue value) {
switch (value.getValueType()) {
case STRING:
String stringValue = ((JsonString)value).getString();
Calendar calendarValue = helper.tryParseCalendar(stringValue);
if (calendarValue != null) {
return calendarValue;
}
else {
return stringValue;
}
case NUMBER:
JsonNumber numberValue = (JsonNumber)value;
if (numberValue.isIntegral()) {
return numberValue.longValue();
}
else {
return numberValue.bigDecimalValue();
}
case TRUE:
return true;
case FALSE:
return false;
case NULL:
return null;
case ARRAY:
JsonArray arrayValue = (JsonArray)value;
Object[] values = new Object[arrayValue.size()];
for (int i=0; i<values.length; i++) {
values[i] = convertValue(arrayValue.get(i));
}
return helper.convertSingleTypeArray(values);
case OBJECT:
return (JsonObject)value;
default:
throw new ParseException("Unexpected JSON value type: " + value.getValueType());
}
}