Jackson ObjectMapper与其他对象映射工具的区别

18

我找不到任何关于jackson的ObjectMapper与其他映射器(如dozer/mapStruct/modelMapping等)之间差异的解释。所有的文章都比较dozer/mapStruct/modelMapping,但它们忽略了ObjectMapper。我不明白哪里出了问题?这个映射器是相同的吗?

2个回答

28

DozerMapStructModelMapping是Java Bean到Java Bean映射框架,可以递归地按属性和字段从一个对象复制数据到另一个对象。

另一方面,ObjectMapper提供了读写JSON的功能,可以与基本POJO或通用的JSON Tree Model进行交互。ObjectMapper还具有一些其他功能,例如转换对象(请参见convertValue方法),但这不是创建此类的主要原因。

因此,如果您想在两个不同模型之间实现复杂的映射,则应使用映射器;如果您想将模型序列化为JSON或从JSON有效负载中反序列化模型,则必须使用Jackson的ObjectMapper。


7

Jackson 库主要用于将对象/实体转换为 JSON,或反之。

ModelMapper/MapStruct 主要用于将一个实体映射到另一个实体,例如将一个实体映射成它的 DTO。由于不同实体的大小和复杂度不同,这个操作可能会变得相当复杂,因此我们需要使用这些库来简化工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接