这是一个非常简单的请求,但我只是没有找到方法。
我基本上是在尝试在 JAXB 中设置一个角色,即每当遇到空字段时,而不是在输出中忽略它,而是将其设置为空值。所以对于类(class):
@XMLRootElement
Class Foo {
Integer num;
Date date;
….
}
如果日期字段为空,则将其编码到 XML 文件中时,我的输出中没有该元素。我想要做的是在输出中包含所有字段;如果它们为空,请将它们替换为 - 比如说一个空白。所以输出应该是:
<foo>
<num>123</num>
<date></date>
</foo>
谢谢,
贾尔佩什。
最佳答案
谢谢大家的回答。
Chris Dail - 我尝试了你的方法,但它并没有真正达到我想要的效果。尽管为我的字段定义了默认值,但 JAXB 仍然忽略了我的 null 值。
在 Jersey 论坛中有人向我指出文档部分 2.2.12.8 No Value 后,我确实偶然发现了答案。 .
基本上,我所要做的就是将以下内容添加到我的字段中:
@XmlElement(nillable = true)
添加后,JAXB 会在将这些字段编码为 XML 时显示这些字段,如下所示:
...
<num>5</num>
<date xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
....
关于java - 带有空字段的 JAXB 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/858598/