我有以下两门类(class)。一个包含另一个的数组..
@XmlType(name="category", propOrder = { "title", "description", "sdImg", "hdImg","categoryLeafDTO" } )
public class CategoryDTO implements Serializable {
@XmlElementWrapper (name="categoryleaf")
public CategoryLeafDTO[] getCategoryLeafDTO() {
return this.categoryleafdto;
}
public void setCategoryLeafDTO(CategoryLeafDTO[] categoryleafdto) {
this.categoryleafdto = categoryleafdto;
}
}
<小时/>
@XmlType (name = "categoryleaf" , propOrder = { "title", "description", "autoplay" })
public class CategoryLeafDTO implements Serializable {
private static final long serialVersionUID = 1L;
private String title;
private String description;
private String autoplay;
@XmlAttribute (name="title")
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@XmlAttribute (name="description")
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@XmlAttribute (name="autoplay")
public String getAutoplay() {
return this.autoplay;
}
public void setAutoplay(String autoplay) {
this.autoplay = autoplay;
}
}
当我转换时,它显示为
<category title="Trailers" description="Just Trailers" sd_img="http://a.dolimg.com/media/en-US/m/dcom/tvapp/roku/assets/trailers_v4e_250.png" hd_img="http://a.dolimg.com/media/en-US/m/dcom/tvapp/roku/assets/trailers_v4e_250.png">
<categoryleaf>
<categoryLeafDTO title="Trailers" description="Just Trailers" autoplay="ON" />
<categoryLeafDTO title="Cars" description="cars the movie" autoplay="OFF" />
</categoryleaf>
</category>
但我的要求是让它成为
<category title="Trailers" description="Just Trailers" sd_img="http://a.dolimg.com/media/en-US/m/dcom/tvapp/roku/assets/trailers_v4e_250.png" hd_img="http://a.dolimg.com/media/en-US/m/dcom/tvapp/roku/assets/trailers_v4e_250.png">
<categoryleaf title="Trailers" description="Just Trailers" autoplay="ON">
<categoryleaf title="Cars" description="cars the movie" autoplay="OFF">
</category>
最佳答案
在CategoryDTO
中,将@XmlElementWrapper
替换为@XmlElement
,即
@XmlElement(name="categoryleaf")
public CategoryLeafDTO[] getCategoryLeafDTO() {
return this.categoryleafdto;
}
@XmlElementWrapper
在您想要围绕集合的包装元素时使用。
关于java - 如何将Java集合转换为JAXB中XMLElement的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796363/