我有一个代码:
return Response.status(Status.BAD_REQUEST).entity(errors).build();
其中:Response
来自此套餐:javax.ws.rs.core
(jersey 1.9.1);
errors
的实例是:
@XmlRootElement
public class UserInfoValidationErrors {
@XmlElement String username;
@XmlElement String email;
...
然后我有这样的JSON结果:{"username":null,"email":"Email is not valid"}
如果有办法避免让null
出现?
答案 0 :(得分:6)
如果您将Jersey配置为使用Jackson进行JSON序列化,则可以使用以下命令注释模型类:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
如果要将Jersey配置为使用Jackson,可以按如下方式更新web.xml:
<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>
答案 1 :(得分:4)
使用@XmlElement(nillable = true)
。至少这适用于XML生成,所以我相信它也适用于JSON。