in src/main/java/com/aliyun/tea/TeaModel.java [46:85]
private static Map<String, Object> changeToMap(Object object, Boolean exceptStream) {
HashMap<String, Object> map = new HashMap<String, Object>();
try {
for (Field field : object.getClass().getFields()) {
NameInMap anno = field.getAnnotation(NameInMap.class);
String key;
if (anno == null) {
key = field.getName();
} else {
key = anno.value();
}
if (null != field.get(object) && List.class.isAssignableFrom(field.get(object).getClass())) {
List<Object> arrayField = (List<Object>) field.get(object);
List<Object> fieldList = new ArrayList<Object>();
for (int i = 0; i < arrayField.size(); i++) {
fieldList.add(parseObject(arrayField.get(i)));
}
map.put(key, fieldList);
} else if (null != field.get(object) && TeaModel.class.isAssignableFrom(field.get(object).getClass())) {
map.put(key, TeaModel.toMap(field.get(object), exceptStream));
} else if (null != field.get(object) && Map.class.isAssignableFrom(field.get(object).getClass())) {
Map<String, Object> valueMap = (Map<String, Object>) field.get(object);
Map<String, Object> result = new HashMap<String, Object>();
for (Map.Entry<String, Object> entry : valueMap.entrySet()) {
result.put(entry.getKey(), parseObject(entry.getValue()));
}
map.put(key, result);
} else if (exceptStream && null != field.get(object) && InputStream.class.isAssignableFrom(field.get(object).getClass())) {
continue;
} else if (exceptStream && null != field.get(object) && OutputStream.class.isAssignableFrom(field.get(object).getClass())) {
continue;
} else {
map.put(key, field.get(object));
}
}
} catch (Exception e) {
throw new TeaException(e.getMessage(), e);
}
return map;
}