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 все нераспознанные свойства (то есть, нет установщиков или создателей, которые их принимают) игнорируются без предупреждений (хотя обработчики для неизвестных свойств, если таковые имеются, будут по-прежнему вызываться) без исключения.

Другие вопросы по тегам