Как мне игнорировать определенное поле из списка в ответе JSON

#java #json #spring-boot #jackson

#java #json #spring-boot #джексон

Вопрос:

Я пытаюсь игнорировать указанное поле из списка во время десериализации. Я не уверен, как мне это сделать для поля, которое находится внутри списка. Ниже приведен мой класс json и response

Пример json

 {
  "key": {
    "rowKey": "123"
  },
  "names": [
    {
      "firstName": "JON ",
      "firstNameFormatted": "JON"
    }
  ]
}
 

Класс ответа

 @AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString
public class Data {


    private Map<String,Object> key;


    private List<Map<String,Object>> names;
    
   

}
 

Здесь я хотел бы игнорировать

firstNameFormatted

из моего ответа json, но я не уверен, как это сделать, используя jackson для поля, которое находится внутри списка?

Комментарии:

1. Кстати, это поле находится внутри объекта, а не списка.

2. Но, как правило, вы не можете использовать Map<String,Object> , вам понадобится объект и поле с аннотацией @JsonIgnore

3. извините, я не понял, когда вы говорите, что объект и поле аннотированы? вы ссылаетесь на карту в этом случае?

4. Я имею в виду создать класс вместо map, чтобы вы могли сериализовать объект, который будет игнорировать некоторое String firstNameFormatted поле

5. хорошо понял

Ответ №1:

У Джексона есть решение для этого. Просто используйте @JsonIgnore , вы можете увидеть это в примере ниже

 @JsonIgnore
public String getPassword() {
    return password;
}
 

Теперь информация о пароле не будет сериализована в JSON.

Также вы можете попробовать с @JsonIgnoreProperties