将javaBean转换成XML
来源:互联网 发布:linux 1.6 rpm bin 编辑:程序博客网 时间:2024/05/22 18:54
今天要给大家介绍的是如何将javaBean转换成XML。我采用的是JAXB注解的方式。废话不多说,直接上例子。比如我想要组的一个XML格式是这样的:
<country> <province></province></country>
我应该怎么做呢?
首先你需要写一个Java类。
@XmlRootElementpublic class Country private String province; public String getProvince(){ return province; } public void setProvince(String province){ this.province = province; }}
接着再写一个测试的代码
public static void main(String[ ] args){ Country country = new Country(); country.setProvince("zhejiang"); JAXBContext context = JAXBContext.newInstance(Country.class); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true); StringWriter writer = new StringWriter(); marshaller.marshal(country, writer); System.out.println(writer.toString());}
输入的结果是这样的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <country> <province>zhejiang</province> </coutry></xml>
符合我们的要求。看到这里你应该已经会使用JAXB了。
接下来再跟大家介绍一些高级点的用法。
还是country和province为例子,比如我想要生成这个的一个XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <country> <province>zhejiang</province> <province>jiangsu</province> </coutry></xml>
显然,要实现这样的效果,原先的Country类已经不能完成这个任务了,我们需要对Country类做一点修改,如下所示:
@XmlRootElementpublic class Country{ private List<String> province; public String getProvince(){ return province; } public void setProvince(List<String> province){ this.province = province; } public static class Province{ }}
当然了,测试类也要跟着小小地改动一下,如下所示:
public static void main(String[ ] args){ Country country = new Country(); List<String> province = new ArrayList<String>(); province.add("zhejiang"); province.add("jiangsu"); JAXBContext context = JAXBContext.newInstance(Country.class); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true); StringWriter writer = new StringWriter(); marshaller.marshal(country, writer); System.out.println(writer.toString());}
改动以后的代码将会得到这样的一个XML。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <country> <province>zhejiang</province> <province>jiangsu</province> </coutry></xml>
结果完全正确。
接着跟大家介绍几个比较常用的注解,它们是@XmlElementWrapper、@XmlElement
我们先来体会一下它是怎么用的,稍后再跟大家介绍它的概念。
产品经理看了我的XML文件后觉得还不错,但是他说还有改进的空间,他想要下面这样的XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <country> <provinceList> <province>zhejiang</province> <province>jiangsu</province> </proviceList> </coutry></xml>
身为一枚研发,虽然很憎恨产品经理总是改需求,但是仔细想想这个需求也是合理的啊,你想,毕竟province是同一个类型的数据,这个时候为了理解方便,我当然是在这些province外面加上一个provinceList比较合适了。好吧,那我就改改吧。
这个时候我们不需要再改动代码了,只要用一个注解就可以了,用哪个注解呢,就是之前提到过的@XmlElementWrapper。那么问题来了,这个注解要放在那里呢?看下面的代码:
@XmlRootElementpublic class Country{ @XmlElementWrapper private List<String> province; public String getProvince(){ return province; } public void setProvince(List<String> province){ this.province = province; } public static class Province{ }}
看到了吧,就把@XmlElementWrapper放在province属性的上面。
本来想着可以下班了,这时候烦人的产品经理又来了,他说,可能还要麻烦你再改一改,我想要下面这样的XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <country> <provinceList> <province-name>zhejiang</province-name> <province-name>jiangsu</province-name> </proviceList> </coutry></xml>
我还有什么话好说呢,改就改吧,不过这是最后一次了,这次改完别再来找我了。其实改下也不难,就只要加一个@XmlElement注解。嘿嘿,就欺负你产品经理不懂技术。
@XmlRootElementpublic class Country{ @XmlElementWrapper private List<String> province; @XmlElement(name="province-name") public String getProvince(){ return province; } public void setProvince(List<String> province){ this.province = province; } public static class Province{ }}
在getProvince上面加了一个@XmlElement注解,搞定!
最后再简单介绍一下@XmlElementWrapper和@XmlElement这两个注解的概念
@XmlElementWrapper注解表示生成一个包装器元素,仅允许出现在集合属性上。
@XmlElement注解指定一个字段或get/set方法映射到XML的节点,并且可以通过name属性改变java对象属性在XML节点中的名字。
- 将javaBean转换成XML
- 将javaBean转换成XML
- SAX 解析XML 将xml转换成javaBean
- 用dom4j及反射机制将xml转换成JavaBean
- 使用xjc将xml文件转换成javabean
- 成功实践:半自动地将XML结点转换成JAVABEAN,再半自动地将JAVABEAN存入数据库
- 将JavaBean用DOM4J转换成xml文件,用DOM4J解析xml文件
- Xstream 来实习JavaBean转换成XML
- xStream(javabean转换成xml)
- JAVABEAN转换为XML
- xStream 将xml转为javaBean
- JAXB转换xml和JavaBean
- jaxb2实现Javabean转换xml
- javaBean和XML相互转换
- XStream(JavaBean转换为xml)
- 将HTML转换成XML
- 将dataset转换成xml
- 将sql转换成xml
- jsp ---打印设置
- MV3D -- 3D proposal 网络
- UITextView的PlaceholderTextView封装Swift4.0
- bzoj 5056: OI游戏
- CentOS6.5 VPS安装PPTP VPN
- 将javaBean转换成XML
- CImg库介绍
- DevExpress软件的安装及首次使用流程讲解
- MV3D -- Region-based 融合网络
- 【学习笔记】socket IO demo
- javaweb实现定时任务
- winfrom的webBrowser从当前页面打开新的页面
- 写一个方法,求一个数组长度m,值是n
- java常用的几种线程池比较