2010-11-12 12 views
31

tengo el siguiente archivo JSON:Jackson: No haga caso de JSON valor de configuración


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

Pero el modelo de Java es la siguiente:


public class Segment { 

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

    // getter and setters here... 
} 

Cuando Jackson está analizando se genera una excepción becuase no hay getter o setter para el campo "externalId". ¿Hay un decorador que se puede usar para ignorar un campo json?

Respuesta

67

Puede usar la anotación @JsonIgnoreProperties; si es sólo un valor que desea saltar, algo así como:

@JsonIgnoreProperties({"externalId"}) 

o hacer caso omiso de cualquier cosa que no se puede utilizar:

@JsonIgnoreProperties(ignoreUnknown=true) 

Hay otras maneras de hacerlo también, para descanso de comprobación fuera FasterXML Jackson wiki.

+0

El FasterXML Jackson wiki vinculado ya no existe. – jackthehipster

2

También podemos usar mapper.enable (DeserializationFeature. FAIL_ON_IGNORED_PROPERTIES); lugar @JsonIgnoreProperties (ignoreUnknown = true)

pero para la propiedad particular, podemos utilizar

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

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

    // getter and setters here... 
} 
Cuestiones relacionadas