2010-11-12 15 views
31

ho il seguente file JSON:Jackson: Ignora JSON valore di configurazione


{ 
    "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". C'è un decoratore che può essere usato per ignorare un campo JSON?

risposta

67

È 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.

+0

Il collegato FasterXML Jackson wiki non esiste più. – jackthehipster

2

Inoltre, è possibile utilizzare 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... 
} 
Problemi correlati