jaxb解析xml关于处理list的注解

jaxb解析xml关于处理list的注解

2023年7月24日发(作者:)

jaxb解析xml关于处理list的注解在JAXB中(⽤于JAVA对象和xml之间的转换),经常出现各类的 @XmlElement这样的标记,

下⾯就来以⼀个例⼦⼩结下,加深学习:

import .*;

import tion.*;

@XmlRootElement

@XmlAccessorType()

public class Customer {

private List emailAddresses;

public Customer() {

emailAddresses = new ArrayList();

}

public List getEmailAddresses() {

return emailAddresses;

}

public void setEmailAddresses(List emailAddresses) {

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:

janed@

jdoe@

下⾯逐⼀看每个注解的⽤法

1) @XmlElement

@XmlElement(name="email-address")

private List emailAddresses;

加上这个注解的话,则按⾃定义的xml标签名去输出某个属性,如下:

janed@

jdoe@

2) @XmlElementWrapper

这个注解等于在最外⾯再包⼀层了,

@XmlRootElement

@XmlAccessorType()

public class Customer {

@XmlElementWrapper(name="email-addresses")

@XmlElement(name="email-address")

private List emailAddresses;

}

输出:

janed@

jdoe@

3) @XmlList

这个等于是在同⼀⾏中,把list中的输出,以空格形式分隔开来,

@XmlRootElement

@XmlAccessorType()

public class Customer {

@XmlList

private List emailAddresses;

}

输出:

janed@ jdoe@

4)

@XmlList和 @XmlAttribute混合使⽤

@XmlList

@XmlAttribute

private List emailAddresses;

输出:

emailAddresses="janed@ jdoe@"/>

看到没?就是同⼀⾏中逗号输出,并作为customer的⼀个属性

5)

@XmlList 和 @XmlValue混⽤

@XmlList

@XmlValue

private List emailAddresses;

就是把emailAddress的list的值,作为的value 输出,结果如下:

janed@ jdoe@

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690212669a315696.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信