是否有可以从Map<String, Object>
映射到pojo / bean的映射库(如Dozer)?
我的具体用例是映射来自nashorn的ScriptObjectMirror
,但我应该可以在更高的界面上工作,因为ScriptObjectMirror
实现了Map
。
答案 0 :(得分:1)
您可以使用orika mapper。它非常灵活和可扩展。 您可以找到更多详细信息here。
请仔细阅读user guide。
FAQ中也提到了它。
我可以将集合或地图中包含的对象映射到字段,反之亦然
是。 (从1.3.0版开始) 对于Bean to Map,只需使用mapperFactory.classMap(...)方法正常定义类映射,将其中一个类型作为可分配给java.util.Map的Class(或Type)传递。等式的Map侧的字段名称将用作Map键。
在这种情况下使用byDefault()方法会导致Bean类型的所有属性通过其属性名称映射到Map类型中。
对于Bean to List或Array,遵循上面针对Maps所述的相同策略,但不是提供键值,而是在Array或List中提供应存储Bean值的索引值。
答案 1 :(得分:1)
虽然不完全重复,但我发现this question提供了直截了当的答案。
从本质上讲,除了众所周知的JSON能力之外,Jackson的ObjectMapper
还可以用于对象到对象的映射。以下代码显示了如何通过两行轻松完成此操作。
final ObjectMapper mapper = new ObjectMapper(); // jackson's objectmapper
final MyPojo pojo = mapper.convertValue(map, MyPojo.class);