首页 > 解决方案 > 如何在 jaxb 中为布尔字段设置 defaultValue

问题描述

在尝试使用 @XmlJavaTypeAdapter(BooleanAdapter.class) 对具有布尔属性的编组和编组对象时,在 json 响应中得到“null”而不是“false”。

我的示例对象和适配器类如下。

公共类测试{

    @XmlJavaTypeAdapter(BooleanAdapter.class)
    boolean b1; 

    @XmlJavaTypeAdapter(BooleanAdapter.class)
    boolean b2; 

    @XmlJavaTypeAdapter(BooleanAdapter.class)
    boolean b3; 

}

公共类 BooleanAdapter 扩展 XmlAdapter {

@Override
public Boolean unmarshal(Boolean v) throws Exception {
    /*
     * 
     */
    return Boolean.TRUE.equals(v);
}

@Override
public Boolean marshal(Boolean v) throws Exception {

    if (v) {
        return v;
    }
    return null;
}

}

在 Marshaling 中,我正在删除具有“false”值的字段以将响应存储在数据库中。但是当我得到 json 响应时,如下所示。

{“b1”:空,“b2”:真,“b3”:空}

这里 b1&b2 的值是假的。我要求值为 false 而不是 null 作为响应。

请帮忙。

标签: javarestjaxb

解决方案


推荐阅读