Jackson: Ignora valore di configurazione JSON
Domanda
Ho il seguente file JSON:
{
"segments": {
"externalId": 123,
"name": "Tomas Zulberti",
"shouldInform": true,
"id": 4
}
}
Ma il modello di Java è la seguente:
public class Segment {
private String id;
private String name;
private boolean shouldInform;
// getter and setters here...
}
Quando Jackson è l'analisi solleva un'eccezione becuase non c'è getter o setter per il campo "ExternalID". E c'è un decoratore che può essere utilizzato per ignorare un campo json?
Soluzione
È possibile utilizzare l'annotazione @JsonIgnoreProperties
; se è solo un valore che si desidera saltare, qualcosa come:
@JsonIgnoreProperties({"externalId"})
o di ignorare tutto ciò che non può essere utilizzato:
@JsonIgnoreProperties(ignoreUnknown=true)
Ci sono altri modi per farlo troppo, per il controllo di riposo fuori FasterXML Jackson wiki .
Altri suggerimenti
Inoltre possiamo usare mapper.enable (DeserializationFeature FAIL_ON_IGNORED_PROPERTIES .); invece @JsonIgnoreProperties (ignoreUnknown = true)
ma per particolare proprietà che possiamo usare
@JsonIgnoreProperties({"externalId"})
public class Segment {
private String id;
private String name;
private boolean shouldInform;
// getter and setters here...
}