#java #arrays #json #serialization #pojo
Вопрос:
Я получаю следующую ошибку в своем приложении, когда пытаюсь передать POST
объект person стороннему API:
Can not deserialize instance of java.lang.Integer out of START_OBJECT token
at [Source:
(through reference chain: Person["postcode"]
Я думаю, проблема в том, что у меня почтовый индекс как целое число, тогда как в контракте API это массив json.
Как я могу представить a Json array
в качестве поля в моем Java POJO?
ПОЖО:
public class Person {
@JsonProperty
private Integer id;
@JsonProperty("postcode")
private Integer postcode;
// other fields...
}
Т. е. в ответе JSON от успешного СООБЩЕНИЯ "postcode"
поле выглядит следующим образом:
"postcode": [],
Комментарии:
1. Я действительно надеюсь
postcode
, что это не массив целых чисел, так что, вероятно, так и должно бытьprivate String[] postcode;
. Но трудно сказать, не зная, что в нем на самом деле содержится.2. На самом деле, я верю, что это массив целых чисел…
3. Тогда
private Integer[] postcode
следует сделать свое дело. Надеюсь, вы никогда не получите почтовый индекс, начинающийся с 0 или содержащий не цифры.4. спасибо, будет ли это также работать в качестве частного почтового индекса списка<Целое число>?
5. Я не знаю, можете ли вы сделать это напрямую. Смотрите эту статью для возможного решения.