Почему objectMapper не видит сеттеров полей Pojo объекта?
Класс User
public class User {
private String ID;
private boolean ACTIVE;
private String UF_PHONE_INNER;
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
... и т.д.
Класс Users
public class Users {
private User[] result;
public User[] getUsers() {
return result;
}
public void setResult(User[] result) {
this.result = result;
}
и т.д....
Разбираю JSON
log.debug("jsonString is {}",jsonString);
users.setResult(objectMapper.readValue(jsonString, Users.class).getUsers());
Получаю:
DEBUG log:71 - jsonString is {"result":[{"ID":"1","ACTIVE":true,...
WARN log:81 - com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "ID" (class ru.bityard.bitrix24.User), not marked as ignorable (3 known properties: "id", "active", "uf_PHONE_INNER"])
Я понять не могу, почему он видит id вместо ID ???
У меня впечатление, что парсер, воспринимает поле ID как объект...
Jackson видя метод setID считает что поле будет называться iD. Добавьте аннотацию @JsonProperty и назовите поля в стиле java
public class User {
private String id;
@JsonProperty("ID")
public void setId(String id) {
this.id= id;
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей