2010-11-12 23 views
31

je le fichier JSON suivant:Jackson: Ignorer la valeur de configuration JSON


{ 
    "segments": {   
      "externalId": 123, 
      "name": "Tomas Zulberti", 
      "shouldInform": true, 
      "id": 4 
    } 
} 

Mais le modèle java est la suivante:


public class Segment { 

    private String id; 
    private String name; 
    private boolean shouldInform; 

    // getter and setters here... 
} 

Lorsque Jackson est l'analyse soulève une exception becuase il n'y a getter ou setter pour le champ "externalId". Y at-il un décorateur qui peut être utilisé pour ignorer un champ JSON?

Répondre

67

Vous pouvez utiliser l'annotation @JsonIgnoreProperties; si elle est juste une valeur que vous voulez sauter, quelque chose comme:

@JsonIgnoreProperties({"externalId"}) 

ou d'ignorer tout ce qui ne peut être utilisé:

@JsonIgnoreProperties(ignoreUnknown=true) 

Il y a d'autres façons de le faire aussi, pour le contrôle de repos à FasterXML Jackson wiki.

+0

Le lien wiki FasterXML Jackson ne plus exister. – jackthehipster

2

Nous pouvons également utiliser mapper.enable (DeserializationFeature FAIL_ON_IGNORED_PROPERTIES); au lieu @JsonIgnoreProperties (ignoreUnknown = true)

mais pour cette propriété particulière, nous pouvons utiliser

@JsonIgnoreProperties({"externalId"}) 
public class Segment { 

    private String id; 
    private String name; 
    private boolean shouldInform; 

    // getter and setters here... 
}