什么java映射库可以从Map <string,object =“”>映射到pojo / bean?

时间:2016-08-11 17:38:18

标签: java mapping javabeans pojo dozer

是否有可以从Map<String, Object>映射到pojo / bean的映射库(如Dozer)?

我的具体用例是映射来自nashorn的ScriptObjectMirror,但我应该可以在更高的界面上工作,因为ScriptObjectMirror实现了Map

2 个答案:

答案 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);