最近遇到了一个Object转成Map的问题,真是闹心。所以写接口时千万不要返回Object。
Object 转化成 Map<String,Object>
/**
* 将Object类型的数据转化成Map<String,Object>
* @param obj
* @return
* @throws Exception
*/
public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException {
Map<String, Object> map = new HashMap<String, Object>();
Class<?> cla = obj.getClass();
Field[] fields = cla.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
String keyName = field.getName();
Object value = field.get(obj);
if (value == null)
value = "";
map.put(keyName, value);
}
return map;
}
Map转化成List
/**
* 将Map转化成List
* @param obj
* @return
* @throws IllegalAccessException
*/
private static List mapToList(Object obj) throws IllegalAccessException {
Map<String, Object> objMap = getObjectToMap(obj);
Iterator iterator1 = objMap.keySet().iterator();
Object o = objMap.get(iterator1.next());
HashMap hashMap = JSONObject.parseObject(JSONObject.toJSONString(o), HashMap.class);
Iterator iterator2 = hashMap.keySet().iterator();
Object o1 = hashMap.get(iterator2.next());
return JSONObject.parseObject(JSONObject.toJSONString(o1), List.class);
}