我正在寻找一种方法来输出所有BigIntegers作为字符串使用Jackson。这些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将它们转换为科学记数法时,我不能再使用它们。
1条答案
按热度按时间sirbozc51#
看看Jackson How-To: Custom Serializers。举个例子