2023年7月24日发(作者:)
jaxb解析xml关于处理list的注解在JAXB中(⽤于JAVA对象和xml之间的转换),经常出现各类的 @XmlElement这样的标记,
下⾯就来以⼀个例⼦⼩结下,加深学习:
import .*;
import tion.*;
@XmlRootElement
@XmlAccessorType()
public class Customer {
private List
public Customer() {
emailAddresses = new ArrayList
}
public List
return emailAddresses;
}
public void setEmailAddresses(List
ddresses = emailAddresses;
}
}
这个是⼀个典型的POJO了,其中引⽤了对象emailAddress,是⼀个List,那么下⾯演⽰各类⽤法:
先看默认的调⽤代码如下:
import ntext;
import ller;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = tance();
Customer customer = new Customer();
ilAddresses().add("janed@");
ilAddresses().add("jdoe@");
Marshaller marshaller = Marshaller();
perty(_FORMATTED_OUTPUT, true);
l(customer, );
}
}
默认的把这个对象输出为⼀般的XML:
下⾯逐⼀看每个注解的⽤法
1) @XmlElement
@XmlElement(name="email-address")
private List
加上这个注解的话,则按⾃定义的xml标签名去输出某个属性,如下:
2) @XmlElementWrapper
这个注解等于在最外⾯再包⼀层了,
@XmlRootElement
@XmlAccessorType()
public class Customer {
@XmlElementWrapper(name="email-addresses")
@XmlElement(name="email-address")
private List
}
输出:
3) @XmlList
这个等于是在同⼀⾏中,把list中的输出,以空格形式分隔开来,
@XmlRootElement
@XmlAccessorType()
public class Customer {
@XmlList
private List
}
输出:
4)
@XmlList和 @XmlAttribute混合使⽤
@XmlList
@XmlAttribute
private List
输出:
emailAddresses="janed@ jdoe@"/> 看到没?就是同⼀⾏中逗号输出,并作为customer的⼀个属性 5) @XmlList 和 @XmlValue混⽤ @XmlList @XmlValue private List 就是把emailAddress的list的值,作为
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690212669a315696.html
评论列表(0条)