private Object convertValue()

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());
        }
    }