java - 如何在 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 作为响应。
请帮忙。
解决方案
推荐阅读
- excel - 返回 MsgBox 中新生成的单元格值
- c++ - 如何显示向量中的所有元素
- python - Django - 多种用户类型(能够在它们之间切换)
- mysql - 在 Laravel 中更新表单时避免重复或错误
- java - 当 testng 测试失败时 mvn build 失败
- python - Python中的Powerset算法:列表中+和追加之间的区别
- nlp - 在创建远程监督训练数据时,如果存在多个关系,如何确定两个实体之间的关系?
- laravel - 登录后 Nginx 设置重定向的 Laravel 项目
- java - 等价于 java 中的 for x, y in z
- opencv - ValueError:无法将大小为 230400 的数组重塑为形状 (1,153600)