jackson objectMapper 与其他人的区别

Pla*_*gyy 10 jackson mapper modelmapper mapstruct objectmapper

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

Mic*_*ber 13

DozerMapStructModelMappingJava Bean to Java Bean映射器框架,它们将数据从一个对象递归复制到另一个对象,逐个属性,逐个字段。

另一方面,ObjectMapper提供了读写功能JSON,可以是基本 POJO 的读写,也可以是通用 POJO 的读写JSON Tree ModelObjectMapper具有一些附加功能,例如转换对象(请参阅convertValue方法),但这不是创建此类的主要原因。

所以,如果你想在两个不同的模型之间实现复杂的映射,你应该使用映射器;如果要将模型JSON序列化为或从JSON有效负载反序列化模型,则必须ObjectMapperJackson使用。


小智 8

Jackson 库 - 主要涉及对象/实体与 JSON 之间的相互转换。

ModelMapper/MapStruct - 涉及将一个实体映射到另一个实体,例如将一个实体映射到其 DTO。由于不同实体的大小和复杂性,此操作可能会变得非常棘手,因此我们需要这些库来使工作变得更轻松。