33 votes

Jackson: ignorer la valeur de configuration Json

J'ai le fichier json suivant:

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

Mais le modèle Java est le suivant:

 
public class Segment {

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

    // getter and setters here...
}
 

Lorsque Jackson est en train de l'analyser, une exception se produit car il n'y a ni getter ni paramètre pour le champ "externalId". Y at-il un décorateur qui peut être utilisé pour ignorer un champ json?

69voto

StaxMan Points 34626

Vous pouvez utiliser les annotations @JsonIgnoreProperties ; si vous voulez ignorer une valeur, par exemple:

 @JsonIgnoreProperties({"externalId"})
 

ou pour ignorer tout ce qui ne peut pas être utilisé:

 @JsonIgnoreProperties(ignoreUnknown=true)
 

Il existe d'autres moyens de le faire aussi, pour le reste, consultez le wiki de FasterXML Jackson .

2voto

SamDJava Points 161

Nous pouvons également utiliser mapper.enable ( DeserializationFeature . FAIL_ON_IGNORED_PROPERTIES ); à la place, @JsonIgnoreProperties (ignoreUnknown = true)

mais pour une 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...
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X