#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