java - Jaxb+jersey. Omitiendo campos nulos en json generado
(2)
Use @XmlElement(nillable = true)
. Al menos esto funciona para la generación de XML, así que creo que debería funcionar también para JSON.
Tengo un código:
return Response.status(Status.BAD_REQUEST).entity(errors).build();
Dónde: La Response
proviene de este paquete: javax.ws.rs.core
(jersey 1.9.1);
Donde los errors
son instancia de:
@XmlRootElement
public class UserInfoValidationErrors {
@XmlElement String username;
@XmlElement String email;
...
Entonces tengo un resultado JSON como este: {"username":null,"email":"Email is not valid"}
Si hay una forma de evitar tener null
allí?
Si tiene Jersey configurado para usar Jackson para hacer su serialización JSON, puede anotar sus clases modelo con:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
Si desea configurar Jersey para usar Jackson, puede actualizar su web.xml de la siguiente manera:
<servlet-name>Jersey</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.your.package;org.codehaus.jackson.jaxrs</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>