protected void writeListProperty(JsonGenerator jg, Property prop) throws IOException {
   jg.writeStartArray();
   if (prop instanceof ArrayProperty) {
     Object[] ar = (Object[]) prop.getValue();
     if (ar == null) {
       jg.writeEndArray();
       return;
     }
     Type itemType = ((ListType) prop.getType()).getFieldType();
     ObjectResolver resolver = itemType.getObjectResolver();
     String path = prop.getPath();
     for (Object o : ar) {
       if (!fetchProperty(jg, resolver, o, path)) {
         writeScalarPropertyValue(jg, ((SimpleType) itemType).getPrimitiveType(), o);
       }
     }
   } else {
     ListProperty listp = (ListProperty) prop;
     for (Property p : listp.getChildren()) {
       writeProperty(jg, p);
     }
   }
   jg.writeEndArray();
 }