如何解决忽略数组元素的父标记xml标记JAXBContext
我想使用JAXBContext解组复杂的对象。
对象包含数组,每个元素均以标签开头。
xml文件如下:
<root>
<name>any name</name>
..
<movies>
<element>
<id>123</id>
<name>transformers</name>
</element>
<element>
<id>567</id>
<name>joker</name>
</element>
...
</movies>
</root>
我的pojo是:
@XmlRootElement(name="root")
public class Personalization {
private String name;
..
private Movie[] movies;
}
public class Movie{
private String id;
private String name;
}
当我尝试进行映射时,电影数组包含null。 当我删除标签时,它起作用了。 我必须保持xml的原样,因为它必须采用这种格式。 如何忽略每个电影元素中的标签?
注意:我无法创建Element类并在其中嵌入电影属性,因为我需要将相同的pojo映射到下面的json格式的文件中:
{
"name":any name,..
'movies": [
{
"id": 123,"name:"transformers
},{
"id":567,"name":joker
}
...
]
}
解决方法
您在电影列表上缺少一些注释,首先将列表“包装”:在“元素”序列上包含一个包含“电影”元素,并且jaxb必须知道每个列表元素都已命名“元素”,因此看起来像:
@XmlRootElement(name="root")
public class Personalization {
private String name;
..
@XmlElementWrapper(name="movies")
@XmlElement(name ="element")
private Movie[] movies;
}
public class Movie{
private String id;
private String name;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。