Java 关于REST响应和XMLElement
我有一个需要在代码中创建的REST响应:Java 关于REST响应和XMLElement,java,xml,rest,xml-parsing,jaxb,Java,Xml,Rest,Xml Parsing,Jaxb,我有一个需要在代码中创建的REST响应: <sample> <tags> <tag> <name>ABC</name> <Date>2014-10-14T12:30:05Z</ingress> </tag> <tag> <name>DEF</name>
<sample>
<tags>
<tag>
<name>ABC</name>
<Date>2014-10-14T12:30:05Z</ingress>
</tag>
<tag>
<name>DEF</name>
<Date>2014-10-14T12:30:05Z</ingress>
</tag>
</tags>
</sample>
基础知识
2014-10-14T12:30:05Z
DEF
2014-10-14T12:30:05Z
然而,我越来越
<sample>
<tags>
<name>ABC</name>
<Date>2014-10-14T12:30:05Z</ingress>
</tags>
<tags>
<name>DEF</name>
<Date>2014-10-14T12:30:05Z</ingress>
</tags>
</sample>
基础知识
2014-10-14T12:30:05Z
DEF
2014-10-14T12:30:05Z
有人能帮我如何声明Java类来获得所需的REST响应吗
以下是java代码:
@XmlRootElement(name = "sample")
public class Sample {
private List<Tag> tags;
@XmlElement(name = "tags")
public List<Tag> getTags() {
return tags;
}
/**
* @param tags
* the tags to set
*/
public void setTags(List<Tag> tags) {
this.tags = tags;
}
}
@XmlRootElement(name = "tag")
public class Tag {
private String name;
private Date date;
/**
* @return the name
*/
@XmlElement(name = "name")
public String getName() {
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the date
*/
@XmlElement(name = "date")
public Date getDate() {
return date;
}
/**
* @param date
* the date to set
*/
public void setDate(Date date) {
this.date = date;
}
}
@XmlRootElement(name=“sample”)
公共类样本{
私有列表标签;
@xmlement(name=“tags”)
公共列表getTags(){
返回标签;
}
/**
*@param标签
*要设置的标记
*/
公共无效集合标记(列表标记){
this.tags=标签;
}
}
@XmlRootElement(name=“tag”)
公共类标签{
私有字符串名称;
私人日期;
/**
*@返回名称
*/
@xmlement(name=“name”)
公共字符串getName(){
返回名称;
}
/**
*@param name
*要设置的名称
*/
公共void集合名(字符串名){
this.name=名称;
}
/**
*@返回日期
*/
@xmlement(name=“date”)
公共日期getDate(){
返回日期;
}
/**
*@param日期
*设定日期
*/
公共作废设置日期(日期){
this.date=日期;
}
}
谢谢
然后将标记的实例作为示例的属性
@XmlRootElement(name = "sample")
public class Sample {
private Tags tags;
@XmlElement(name = "tags")
public void setTags(Tags tags) {
this.tags = tags;
}
public Tags getTags() {
return tags;
}
}
或
一个更简单的解决方案就是使用
围绕XML表示生成包装器元素。这主要用于围绕集合生成包装器XML元素
使用原始代码,可以简单地将注释添加到列表中
@XmlRootElement(name = "sample")
public class Sample {
private List<Tag> tags;
@XmlElementWrapper(name = "tags")
@XmlElement(name = "tag")
public List<Tag> getTags() {
if (tags == null) {
tags = new ArrayList<>();
}
return tags;
}
public void setTags(List<Tag> tags) {
this.tags = tags;
}
}
@XmlRootElement(name=“sample”)
公共类样本{
私有列表标签;
@XmlElementWrapper(name=“tags”)
@xmlement(name=“tag”)
公共列表getTags(){
if(标记==null){
tags=newarraylist();
}
返回标签;
}
公共无效集合标记(列表标记){
this.tags=标签;
}
}
您只需使用@xmlementwrapper
注释即可将分组元素添加到集合中
@XmlElementWrapper
@XmlElement(name = "tag")
public List<Tag> getTags() {
return tags;
}
@xmlementwrapper
@xmlement(name=“tag”)
公共列表getTags(){
返回标签;
}
注意:@xmlement
适用于集合中的每个项目。请发布java代码。以下是java代码:必须有其他代码实际创建标记,并对其进行封送。也发布代码。这些是REST响应。所以我认为jersey会处理这些。
@XmlElementWrapper
@XmlElement(name = "tag")
public List<Tag> getTags() {
return tags;
}
@XmlElementWrapper
@XmlElement(name = "tag")
public List<Tag> getTags() {
return tags;
}