JAXB实现Object与XML转换
发布时间:2020-12-15 22:48:28 所属栏目:百科 来源:网络整理
导读:Customer类 @XmlRootElement(name = "type")public class Customer { String name;int age;int id;public String getName() {return name;} @XmlElementpublic void setName(String name) {this.name = name;} public int getAge() {return age;} @XmlElemen
Customer类 @XmlRootElement(name = "type") 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; } } 核心方法 JAXB public class JAXB { /** * XML转Object * @param <T> * @param xmlStr * @param type * @return */ public static <T> T unmarshal(String xmlStr,Class<T> type){ T customer = null; try { JAXBContext jaxbContext = JAXBContext.newInstance(type); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); customer = (T) jaxbUnmarshaller.unmarshal(new StringReader(xmlStr)); } catch (JAXBException e) { // TODO Auto-generated catch block e.printStackTrace(); } return customer; } /** * Object转XML * @param <T> * @param context * @param chart * @return * @throws JAXBException */ public static String marshal(Object obj,String encoding) { String strxml = null; try { JAXBContext context = JAXBContext.newInstance(obj.getClass()); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true); marshaller.setProperty(Marshaller.JAXB_ENCODING,encoding); StringWriter writer = new StringWriter(); marshaller.marshal(obj,writer); strxml = writer.toString(); } catch (JAXBException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return strxml; } } 测试方法 JAXBTest
public class JAXBTest { public static void main(String args[]){ //xml转object /*String xmlStr = "<?xml version="1.0" encoding="gbk" standalone="yes"?><customer id="100"><age>29</age><name>mkyong</name><sex>男</sex></customer>"; JAXB j = new JAXB(); Customer customer = j.unmarshal(xmlStr,Customer.class); System.out.println(customer.name +" ; "+ customer.id +" ; "+ customer.age);*/ //object转xml Customer customer = new Customer(); customer.setId(100); customer.setName("mkyong"); customer.setAge(29); JAXB j = new JAXB(); String xml = j.marshal(customer,"UTF-8"); System.out.println(xml); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |