Джексон: Игнорировать значение конфигурации Json
У меня есть следующий json файл:
{
"segments": {
"externalId": 123,
"name": "Tomas Zulberti",
"shouldInform": true,
"id": 4
}
}
Но модель java выглядит следующим образом:
public class Segment {
private String id;
private String name;
private boolean shouldInform;
// getter and setters here...
}
Когда Джексон разбирается, возникает исключение, потому что для поля "externalId" отсутствует геттер или сеттер. Это там декоратор, который можно использовать для игнорирования json-поля?
Ответы
Ответ 1
Вы можете использовать аннотацию @JsonIgnoreProperties
; если это просто одно значение, которое вы хотите пропустить, например:
@JsonIgnoreProperties({"externalId"})
или игнорировать все, что нельзя использовать:
@JsonIgnoreProperties(ignoreUnknown=true)
Есть и другие способы сделать это, для отдыха - FasterXML Jackson wiki.
Ответ 2
Также мы можем использовать mapper.enable(DeserializationFeature. FAIL_ON_IGNORED_PROPERTIES);
вместо @JsonIgnoreProperties (ignoreUnknown = true)
но для частного свойства мы можем использовать
@JsonIgnoreProperties({"externalId"})
public class Segment {
private String id;
private String name;
private boolean shouldInform;
// getter and setters here...
}