2
我在我的代碼中遇到過這個問題:當除了聲明爲@XmlValue
的字段之外的所有字段都爲null時,MOXy將字段封送出來,就好像它是整個對象的唯一值。我意識到這可能是一個有目的的實現,但我想知道是否有任何解決方法。注:我目前使用的EclipseLink MOXY,但是這似乎是所有JAXB綁定@XmlValue的JAXBContext處理
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class foo {
@XmlValue
private final String name;
@XmlAttribute(name = "name2", required = true)
private final String name2;
>....getters, setters, etc....<
public foo(String name, String name2) {
this.name = name;
this.name2 = name2;
}
}
標準,我只是運行
JAXBContext jc = JAXBContext.newInstance(moxyTest.foo.class);
Marshaller marsh = jc.createMarshaller();
marsh.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marsh.setProperty("eclipselink.media-type", "application/json");
StringWriter strWriter = new StringWriter();
foo example = new foo("blah", null);
marsh.marshal(example, strWriter);
我希望我的輸出是
{
"foo" : {
value: "blah"
}
}
但是由於@XmlValue
註釋它是
{
"foo" : "blah"
}