Java Jackson - предотвращает преобразование типа float в int при десериализации
У меня есть полезная нагрузка JSON со следующей структурой ...
{
"age": 12
}
... который сопоставлен со следующим классом:
public class Student {
private Integer age;
public Integer getAge(){return age;}
public void setAge(Integer age){this.age = age;}
}
На данный момент, если пользователь отправляет значение с плавающей точкой дляage
, десятичные дроби игнорируются и принимается только целая часть. Что я хочу сделать, это запретить пользователю отправлять полезную нагрузку со значением с плавающей запятой дляage
(см. ниже) и сгенерируйте исключение (что-то вроде «недопустимого значения JSON для поля 'age' в строке 8 col 5» - как стандартное сообщение при сбое десериализации).
{
"age": 12.7 // will be truncated to 12
}
Я думал о реализации пользовательского десериализатора для числовых значений, но мне было интересно, есть ли более простой способ добиться этого.