Usando jackson 2.1, ¿cómo desactivo el fail_on_empty beans
mensaje de error que parece querer que desactive?
Supongo que esto es lo más simple del mundo, pero demonios, es tarde y no he podido encontrar un tutorial simple o algo particularmente obvio en el api
. SerializationFactory
? ¿Por qué lo hacen tan poco intuitivo y luego hacen que el mensaje de error parezca tan sencillo?
A pesar de que hago como el mensaje de error, quiero decir, es mejor que una NPE.
Supongo que hay una manera de hacer esto usando anotaciones, ¡pero no estoy interesado en usarlas en absoluto para el trabajo simplista que estoy haciendo!
@JsonSerialize
para deshabilitarFAIL_ON_EMPTY_BEANS
la declaración de clase?Si está utilizando Spring Boot, puede establecer la siguiente propiedad en el archivo application.properties. spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = falso
fuente
También puede tener el mismo problema si su clase no contiene ningún método / propiedad pública. Normalmente tengo DTO dedicados para solicitudes y respuestas de API, declarados públicos, pero olvidé en un caso hacer públicos los métodos también, lo que provocó el bean "vacío" en primer lugar.
fuente
Probablemente también pueda anotar la clase con
@JsonIgnoreProperties(ignoreUnknown=true)
para ignorar los campos no definidos en la clasefuente
Si desea obtener un objeto JSON sin campos adicionales, agregue esta anotación a su clase, funcionó perfectamente para mí.
También puede agregar esta fila en su archivo application.properties, pero agregará un campo adicional a su JSON.
fuente
Si usa org.codehaus.jackson.map.ObjectMapper, por favor. usa las siguientes líneas
fuente
En Jersey Rest Services, simplemente use la anotación JacksonFeatures ...
fuente
En mi caso, me perdí escribir la anotación @JsonProperty en uno de los campos que estaba causando este error.
fuente
Agregando una solución aquí para un problema diferente, pero uno que se manifiesta con el mismo error ... Tenga cuidado al construir json sobre la marcha (como respuestas api o lo que sea) para escapar de las comillas dobles literales en los miembros de su cadena. Es posible que esté consumiendo su propio json con formato incorrecto.
fuente
Para solucionar este problema, configure su clase JsonDataFormat como se muestra a continuación
que es casi equivalente a,
fuente
Hola,
Cuando uso
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
Mis valores de objeto json vienen '' en blanco en la página angular significa en respuesta
Resuelto con la ayuda de solo la siguiente configuración
fuente
En mi caso, no necesitaba deshabilitarlo, sino que tuve que poner este código en la parte superior de mi clase: (y esto resolvió mi problema)
fuente