gpt4 book ai didi

java - Jackson - 对象内部属性的自定义序列化器

转载 作者:行者123 更新时间:2023-12-02 03:51:35 24 4
gpt4 key购买 nike

我正在寻找一种使用 Jackson 将所有 BigIntegers 作为字符串输出的方法。这些 BigIntegers 在我的应用程序的许多类中使用,因此将 @JsonSerialize 添加到所有字段不是一个选项。

我创建了一个自定义 Jackson 序列化器,但这仅适用于正在序列化的基类,不适用于类内的属性。所以,这不起作用:

public class BigIntegerSerializer extends JsonSerializer<BigInteger> {

@Override
public void serialize(BigInteger value, JsonGenerator jgen,
SerializerProvider provider) throws IOException {
jgen.writeString(value + "");
}
}

有没有一种方法可以在某种类型的所有属性上序列化 Jackson,而不需要向所有属性添加 @JsonSerialize?

要序列化的对象可以是任何包含 BigIntegers 的 POJO。

PS:将 BigIntegers 转换为 String 的想法是这样 JavaScript 就不会将这些数字转换为科学记数法。我所有的主键都使用 BigInteger,因此当 JavaScript 将它们转换为科学记数法时,我无法再使用它们。

最佳答案

看看Jackson How-To: Custom Serializers 。例如

ObjectMapper mapper = new ObjectMapper();
SimpleModule testModule = new SimpleModule("MyModule", new Version(1, 0, 0, null));
testModule.addSerializer(new BigIntegerSerializer());
mapper.registerModule(testModule);

关于java - Jackson - 对象内部属性的自定义序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35832846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com