<user>
<id>123</id>
<name>John Doe</name>
<vaddresses>
<address>
<street>Street XYZ</street>
</address>
<address>
<street>Street ABC</street>
</address>
</vaddresses>
</user>
我有这些课程:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "User", propOrder = {"id", "name", "addresses"})
public class User {
@XmlElement
private int id;
@XmlElement
private String name;
@XmlElement
private List<Address> addresses;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Address", propOrder = {"street"})
public class Address {
@XmlElement
private String street;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
}
User:
Id: 123
Nome: John Doe
Addresses: null
我如何解决这个问题?我是否可以使用一些JAXB注释?怎么做?还是需要创建某种类型的XmlAdapter?(我试过这个,但没有成功……)
您可以利用@XmlElementWrapper
在集合周围添加分组元素:
@XmlElementWrapper(name="vaddresses")
@XmlElement(name="address")
private List<Address> addresses;
注
您添加的注释比必要的要多。JAXB是按异常配置的,所以您只需要注释希望XML表示不同于默认表示的地方。
问题内容: 我正在尝试创建一个非常简单的REST服务器。我只是有一个测试方法,它将返回字符串列表。这是代码: 它给出以下错误: 我希望JAXB对诸如String,Integer等简单类型具有默认设置。我想不是。这是我的想象: 使这种方法最简单的方法是什么? 问题答案: 我使用@LiorH的示例并将其扩展为: 注意,它使用泛型,因此您可以将其与String之外的其他类一起使用。现在,应用程序代码很简
抱歉长帖,提前感谢! 在我的JAXB中(代码如下),我有一组值集,其中内部集被包装成一个容器类。所以,我有一组值容器,其中一个值是一个泛型类。问题:除非选择的泛型类是硬编码的,否则值不会得到解析。 关于XML的说明: >
我已经生成java类使用从一个xsd,其中根元素是类型的。 jaxb生成的根元素是 当我尝试解组与该xsd对应的xml并强制转换JaxbElement时,它会引发一个强制转换异常: 片段:
我有这个xml文件: 我有以下java代码: 在控制台输出中,我看到 我做错了什么? java版本“1.7.0_45”
我正在构建一系列链接类,我希望这些类的实例能够整理成XML,这样我就可以将它们保存到一个文件中,以后再读进去。 目前我使用以下代码作为测试用例: XML输出为: 元素为空有什么原因吗?我希望它包含日期的字符串表示(即)。为了做到这一点,我需要编写一些我自己的代码吗? 的输出是:
问题内容: 我是JAXB的新手,并且想知道是否有一种方法可以使用xpath表达式将XML解组到我的响应对象。问题是我正在呼叫第三方Web服务,收到的响应有很多详细信息。我不希望将XML中的所有详细信息映射到我的响应对象。我只希望从xml映射一些细节,使用这些细节我可以使用特定的XPath表达式并将其映射到我的响应对象。有没有注释可以帮助我实现这一目标? 例如考虑以下响应 我只对检索街道名称感兴趣,