Jaxb +球衣。在生成的json中跳过空字段

时间:2013-11-19 18:56:45

标签: java json jaxb jersey

我有一个代码:

   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出现?

2 个答案:

答案 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。