Сколько дробных цифр поддерживается при десериализации номера JSON в BigDecimal?

#java #json #serialization #jackson #bigdecimal

Вопрос:

У меня есть BigDecimal с большим количеством дробных цифр (т. Е. цифр справа от десятичной точки). При сериализации я получаю

 "value" : 0.01234567890123456789
 

Но при десериализации я получаю BigDecimal со значением:

 0.012345678901234568
 

Таким образом, это выглядит как десериализация с помощью Джексона, округленная до 18 знаков после запятой. Сколько дробных цифр поддерживается при сериализации и десериализации с использованием Джексона? Как бы я поддержал 20 знаков после запятой? Нужно ли мне сериализовать как строку с помощью чего-то вроде:

 @JsonFormat(shape=JsonFormat.Shape.STRING)
private BigDecimal value;
 

все еще десериализуясь до большого десятичного числа?

Комментарии:

1. Я попробовал ваш код (джексон 2.12.2) без аннотации JsonFormat, и он отлично работает, может быть, причиной этой проблемы может быть какая-то конфигурация ObjectMapper ?