Solución:
Jackson proporciona una anotación que se puede utilizar a nivel de clase (JsonIgnoreProperties).
Agregue lo siguiente a la parte superior de su clase (no a métodos individuales):
@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
...
}
Dependiendo de la versión de jackson que esté usando, tendría que usar una importación diferente en la versión actual que es:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
en versiones anteriores ha sido:
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
Además de los 2 mecanismos ya mencionados, también existe una función global que se puede utilizar para suprimir todas las fallas causadas por propiedades desconocidas (no asignadas):
// jackson 1.9 and before
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// or jackson 2.0
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Este es el valor predeterminado que se usa en ausencia de anotaciones y puede ser una alternativa conveniente.
Respuesta actualizada y completa con Jackson 2
Usar anotación
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyMappingClass {
}
Consulte JsonIgnoreProperties en la documentación en línea de Jackson.
Usando la configuración
Menos intrusivo que la anotación.
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
ObjectReader objectReader = objectMapper.reader(MyMappingClass.class);
MyMappingClass myMappingClass = objectReader.readValue(json);
Consulte FAIL_ON_UNKNOWN_PROPERTIES en la documentación en línea de Jackson.