java如何将@JsonSerialize注释应用于lib类属性?
我正在项目中使用外部库。其中一个模型具有BigDecimal属性,需要自定义精度。如果这个模型是我的,我将应用使用自定义序列化程序的@JsonSerialize注释。但是我不能修改ext.lib的源代码。。。 有什么方法可以应用它吗
你可以在下面搜索框中键入要查询的问题!
我正在项目中使用外部库。其中一个模型具有BigDecimal属性,需要自定义精度。如果这个模型是我的,我将应用使用自定义序列化程序的@JsonSerialize注释。但是我不能修改ext.lib的源代码。。。 有什么方法可以应用它吗
# 1 楼答案
正是为了这个用例,Jackson提供了所谓的mixin。 为了说明如何使用它,让我们通过一个例子:
假设您有一个库类(名为
Model
),包含 类型为BigDecimal
的属性现在,您不能修改上面库类的源代码。 但是,您可以编写一个类(我们称之为
ModelMixin
) 哪种镜像库类Model
和 把杰克逊的注解放在那里。 特别是,您可以为其指定自己的序列化程序BigDecimal number
属性序列化程序可能很简单,也可能很复杂 因为你需要它。这里有一个简单的 选择将
BigDecimal
写入JSON字符串现在你需要告诉杰克逊的} method 完成的
ObjectMapper
从ModelMixin
类中获取注释 并将它们应用于Model
类。 这是由^{这将写入以下JSON输出: