Jackson ObjectMapper игнорирует все свойства, которые не имеют аннотации
Моя цель - конвертировать jsonObject в Class. Я хочу добавить только те поля, которые аннотированы в классе. Пример: объект json содержит 50 полей. Класс имеет 4 поля. Я хочу отобразить только точные 4 поля без добавления 46 дополнительных игнорирований в классе.
JSON:
{
"id": "1",
"name": "John",
"Address": "Some Address 7009",
}
Учебный класс:
public static class User {
Integer id;
String name;
public User (@JsonProperty("id")Integer id, @JsonProperty("name")String name {
this.id= id;
this.name= name;
}
....
}
Пользовательский класс не имеет адресного поля. Моя цель состоит в том, чтобы исключить это, потому что у него нет аннотации.
1 ответ
Решение
Аннотируйте свой класс с @JsonIgnoreProperties
следующим образом:
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
...
}
когда ignoreUnknown
является true
все нераспознанные свойства (то есть, нет установщиков или создателей, которые их принимают) игнорируются без предупреждений (хотя обработчики для неизвестных свойств, если таковые имеются, будут по-прежнему вызываться) без исключения.