4 回答

TA贡献1853条经验 获得超18个赞
许多潜在的解决方案,但让我们再添加一个。使用Jackson(JSON处理库)进行“无json”转换,例如:
ObjectMapper m = new ObjectMapper();
Map<String,Object> props = m.convertValue(myBean, Map.class);
MyBean anotherBean = m.convertValue(props, MyBean.class);
(此博客条目有更多示例)
您基本上可以转换任何兼容的类型:兼容的意思是,如果您确实从类型转换为JSON,并且从该JSON转换为结果类型,则条目将匹配(如果配置正确,也可以忽略无法识别的类型)。
对于可能发生的情况,包括Maps,Lists,数组,基元和类bean POJO,效果很好。

TA贡献1877条经验 获得超6个赞
这是一种将Java对象转换为Map的方法
public static Map<String, Object> ConvertObjectToMap(Object obj) throws
IllegalAccessException,
IllegalArgumentException,
InvocationTargetException {
Class<?> pomclass = obj.getClass();
pomclass = obj.getClass();
Method[] methods = obj.getClass().getMethods();
Map<String, Object> map = new HashMap<String, Object>();
for (Method m : methods) {
if (m.getName().startsWith("get") && !m.getName().startsWith("getClass")) {
Object value = (Object) m.invoke(obj);
map.put(m.getName().substring(3), (Object) value);
}
}
return map;
}
这是怎么称呼的
Test test = new Test()
Map<String, Object> map = ConvertObjectToMap(test);
添加回答
举报