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