【发布时间】:2016-06-20 08:38:42
【问题描述】:
我正在寻找一种使用 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 将它们转换为科学计数法时,我不能再使用它们了。
【问题讨论】:
标签: java serialization jackson