JAXB XML到java object的转换
2014-08-08 13:44
344 查看
JAXB是Java Architecture for XML Binding的缩写。使用JAXB注解将Java对象转换成XML文件。在这篇教程中,我们将会展示如何使用JAXB来做以下事情:
1. marshall 将java对象转化成xml文件
2. unmarshalling 将xml内容转换成java对象
1. marshall 将java对象转化成xml文件
2. unmarshalling 将xml内容转换成java对象
JAXB 注解(Annotation)
如果一个对象需要被转换成XML文件,或者从XML文件中生成,该对象需要用JAXB注解来标注。这些注解光凭名字就知道是什么意思了。具体可参考官网:jaxb guidepackage com.jaxb.core; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Customer { String name; int age; int id; public String getName() { return name; } @XmlElement public void setName(String name) { this.name = name; } public int getAge() { return age; } @XmlElement public void setAge(int age) { this.age = age; } public int getId() { return id; } @XmlAttribute public void setId(int id) { this.id = id; } }
对象转换成XML
JAXB marshalling例子,将customer对象转换成XML文件。jaxbMarshaller.marshal()包含了许多重载方法,哪个输出符合你的要求就选择哪个方法。package com.jaxb.core; import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; public class JAXBExample { public static void main(String[] args) { Customer customer = new Customer(); customer.setId(100); customer.setName("benson"); customer.setAge(23); try { File file = new File("C:\\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); // output pretty printed jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.marshal(customer, file); jaxbMarshaller.marshal(customer, System.out); } catch (JAXBException e) { e.printStackTrace(); } } }
输出:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <customer id="100"> <age>23</age> <name>benson</name> </customer>
XML转换成对象:
JAXB unmarshalling例子,将XML文件内容转换成customer对象。jaxbMarshaller.unmarshal()包含了许多重载方法,哪个适合你的输出,你就选择哪个方法。package com.jaxb.core; import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; public class JAXBExample { public static void main(String[] args) { try { File file = new File("C:\\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file); System.out.println(customer); } catch (JAXBException e) { e.printStackTrace(); } } }
相关文章推荐
- JAXB:Java Object与XML的互相转换
- 一个jaxb的例子看java object和xml之间的转换
- JAVA Object和XML直接的转换通过JAXB
- 一个jaxb的例子看java object和xml之间的转换
- Jaxb2.0实现Java Object转换Xml转换Java Object.
- Xml与Java Object 的转换[JAXB]
- JAXB 实现java对象与xml之间互相转换(二)
- Java与XML的故事二:XML与Java Object互相转换
- JAXB实现Object与XML转换
- 利用JAXB实现java对象和xml的相互转换
- 使用JAXB实现JAVA对象和XML字符串的互相转换实例
- 使用JAXB来实现Java合xml之间的转换
- 使用JAXB来实现Java合xml之间的转换
- JAXB的XML和Object的自动转换
- JAXB 实现java对象与xml之间互相转换
- Jaxb多层 java 与 xml 转换
- JAXB 实现java对象与xml之间互相转换(一)
- Jaxb实现Java对象与XML之间的转换
- WebService系列博客{九}[JAXBContext---java和xml的互相转换]
- XML的操作——JAXB进行Java对象和XML之间的转换