Как связать Integer с ведущими нулями в поле Integer в полезной нагрузке запроса при загрузке Spring? - PullRequest
1 голос
/ 25 июня 2019

У меня есть полезная нагрузка, подобная следующей.

{
    "name": "XXXX",
    "expMonth": 07,
    "expYear": 21
}

Мое тело запроса POJO выглядит примерно так.

public Class Card {
     private String name;
     private Integer expMonth;
     private Integer expYear;
}

Однако expMonth не связывается должным образом и выдает исключение,Пожалуйста, предложите путь вперед.

Стек исключений:

org.springframework.http.converter.HttpMessageNotReadableException: ошибка синтаксического анализа JSON: Неверное числовое значение: ведущие нулине положено;вложенным исключением является com.fasterxml.jackson.core.JsonParseException: недопустимое числовое значение: начальные нули не допускаются в [Source: (PushbackInputStream);строка: 4, столбец: 16]

1 Ответ

0 голосов
/ 25 июня 2019

Однако expMonth не связывается должным образом и выдает исключение.

В соответствии со стеком исключений у вас есть ведущие нули и, следовательно, Джексон отбрасывает исключение.Вы можете попробовать что-то вроде

{
    "name": "XXXX",
    "expMonth": 7,    <--- Removing the leading zero(s).
    "expYear": 21
}

Другой способ - заменить его на String

{
    "name": "XXXX",
    "expMonth": "07",
    "expYear": 21
}

Код:

public Class Card {
     private String name;
     private String expMonth;
     private Integer expYear;
}

Затем вы можете сделать что-то вроде,

Integer.parseInt(expMonth);
...