gpt4 book ai didi

java - 如何在 JAXB 中编码未包装的集合?

转载 作者:行者123 更新时间:2023-11-29 06:07:51 25 4
gpt4 key购买 nike

这是我的课:

@XmlRootElement(name = "foo")
@XmlAccessorType(XmlAccessType.NONE)
public class Foo {
@XmlElement
public Collection getElements() {
List elements = new ArrayList();
elements.add(new Bar);
elements.add(new Bar);
return elements;
}
}

Bar 类也很简单:

@XmlType(name = "bar")
@XmlAccessorType(XmlAccessType.NONE)
public static final class Bar {
@XmlElement
public String getMessage() {
return "hello, world!";
}
}

这是编码 Foo 后我得到的:

<foo>
<elements xsi:type="foo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<message>hello, world!</message>
</elements>
<elements xsi:type="foo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<message>hello, world!</message>
</elements>
</foo>

虽然我期待得到:

<foo>
<bar>
<message>hello, world!</message>
</bar>
<bar>
<message>hello, world!</message>
</bar>
</foo>

我应该修复什么?

最佳答案

您需要使用 @XmlElement(name="bar") 注释 elements 属性:

@XmlRootElement(name = "foo")
@XmlAccessorType(XmlAccessType.NONE)
public class Foo {
@XmlElement(name="bar")
public Collection getElements() {
List elements = new ArrayList();
elements.add(new Bar);
elements.add(new Bar);
return elements;
}
}

关于java - 如何在 JAXB 中编码未包装的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com