} else {
Class<?> componentClass = objectClass.getComponentType();
ReflectType componentType = ReflectType.inspectObjectType(componentClass);
Object array = Array.newInstance(componentClass, size);
for (int i = 0; i < size; i++) {
Value value = jsonArray.get(i);
if (value.getValueType() == Value.TYPE.OBJECT) {
Array.set(array, i, marshalJSONDocumentObject((JSON.Object<CharSequence, Value>) value, componentClass));
} else if (value.getValueType() == Value.TYPE.ARRAY) {
Array.set(array, i, marshalJSONDocumentArray((JSON.Array<Value>) value, componentClass));
} else if (componentType == ReflectType.INTEGER) {
Array.set(array, i, jsonArray.get(i).getNumber().intValue());
} else if (componentType == ReflectType.FLOAT) {
Array.set(array, i, jsonArray.get(i).getNumber().floatValue());