web-dev-qa-db-fra.com

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 analyse, il déclenche une exception car il n'y a pas de getter ou setter pour le champ "externalId". Y a-t-il un décorateur qui peut être utilisé pour ignorer un champ json?

33
tzulberti

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

@JsonIgnoreProperties({"externalId"})

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

@JsonIgnoreProperties(ignoreUnknown=true)

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

69
StaxMan

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...
}
2
SamDJava