首页 > 代码库 > jaxb xml to bean

jaxb xml to bean

 

技术分享

 



package www.garbin.com.utils;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Marshaller;import javax.xml.bind.Unmarshaller;import java.io.IOException;import java.io.StringReader;import java.io.StringWriter;/** * Created by linjiabin on 14/11/27. */public class XMLUtils { public static <T> T xml2Bean(Class<T> bean, String xmlStr) { T s = null; try { JAXBContext context = JAXBContext.newInstance(bean); Unmarshaller unmarshaller = context.createUnmarshaller(); s = (T)unmarshaller.unmarshal(new StringReader(xmlStr)); } catch (JAXBException e) { e.printStackTrace(); } return s; } public static <T> String bean2Xml(T bean) { String xmlStr = null; StringWriter writer = null; try { JAXBContext context = JAXBContext.newInstance(bean.getClass()); Marshaller marshaller = context.createMarshaller(); writer = new StringWriter(); marshaller.marshal(bean, writer); xmlStr = writer.toString(); } catch (JAXBException e) { e.printStackTrace(); } finally { if (null != writer) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } return xmlStr; }}

 

package www.garbin.com.pojo;import javax.xml.bind.annotation.XmlAttribute;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;/** * Created by linjiabin on 14/11/28. */@XmlRootElement(name = "Request")public class Request {    private String service;    private String lang;    private String head;    private Body body;    @XmlAttribute(name = "service")    public String getService() {        return service;    }    public void setService(String service) {        this.service = service;    }    @XmlAttribute(name = "lang")    public String getLang() {        return lang;    }    public void setLang(String lang) {        this.lang = lang;    }    @XmlElement(name = "Head")    public String getHead() {        return head;    }    public void setHead(String head) {        this.head = head;    }    @XmlElement(name = "Body")    public Body getBody() {        return body;    }    public void setBody(Body body) {        this.body = body;    }    public static class Body {        private Order order;        @XmlElement(name = "Order")        public Order getOrder() {            return order;        }        public void setOrder(Order order) {            this.order = order;        }    }    public static class Order {        private String orderId;        private String expressType;        private String jCompany;        private String jContact;        private String jTel;        private String jAddress;        private String dCompany;        private String dContact;        private String dTel;        private String dAddress;        private Integer parcelQuantity;        private String payMethod;        private OrderOption orderOption;        private Extra extra;        @XmlAttribute(name = "orderid")        public String getOrderId() {            return orderId;        }        public void setOrderId(String orderId) {            this.orderId = orderId;        }        @XmlAttribute(name = "express_type")        public String getExpressType() {            return expressType;        }        public void setExpressType(String expressType) {            this.expressType = expressType;        }        @XmlAttribute(name = "getj_company")        public String getjCompany() {            return jCompany;        }        public void setjCompany(String jCompany) {            this.jCompany = jCompany;        }        @XmlAttribute(name = "j_contact")        public String getjContact() {            return jContact;        }        public void setjContact(String jContact) {            this.jContact = jContact;        }        @XmlAttribute(name = "j_tel")        public String getjTel() {            return jTel;        }        public void setjTel(String jTel) {            this.jTel = jTel;        }        @XmlAttribute(name = "j_address")        public String getjAddress() {            return jAddress;        }        public void setjAddress(String jAddress) {            this.jAddress = jAddress;        }        @XmlAttribute(name = "j_company")        public String getdCompany() {            return dCompany;        }        public void setdCompany(String dCompany) {            this.dCompany = dCompany;        }        @XmlAttribute(name = "d_contact")        public String getdContact() {            return dContact;        }        public void setdContact(String dContact) {            this.dContact = dContact;        }        @XmlAttribute(name = "d_tel")        public String getdTel() {            return dTel;        }        public void setdTel(String dTel) {            this.dTel = dTel;        }        @XmlAttribute(name = "d_address")        public String getdAddress() {            return dAddress;        }        public void setdAddress(String dAddress) {            this.dAddress = dAddress;        }        @XmlAttribute(name = "parcel_quantity")        public Integer getParcelQuantity() {            return parcelQuantity;        }        public void setParcelQuantity(Integer parcelQuantity) {            this.parcelQuantity = parcelQuantity;        }        @XmlAttribute(name = "pay_method")        public String getPayMethod() {            return payMethod;        }        public void setPayMethod(String payMethod) {            this.payMethod = payMethod;        }        @XmlElement(name = "OrderOption")        public OrderOption getOrderOption() {            return orderOption;        }        public void setOrderOption(OrderOption orderOption) {            this.orderOption = orderOption;        }        @XmlElement(name = "Extra")        public Extra getExtra() {            return extra;        }        public void setExtra(Extra extra) {            this.extra = extra;        }    }    public static class OrderOption {        private String custId;        private String jShippercode;        private String dDeliverycode;        private String cargo;        private Float cargoTotalWeight;        private String sendstarttime;        private String mailno;        private String remark;        private AddedService addedService;        @XmlAttribute(name = "custid")        public String getCustId() {            return custId;        }        public void setCustId(String custId) {            this.custId = custId;        }        @XmlAttribute(name = "j_shippercode")        public String getjShippercode() {            return jShippercode;        }        public void setjShippercode(String jShippercode) {            this.jShippercode = jShippercode;        }        @XmlAttribute(name = "d_deliverycode")        public String getdDeliverycode() {            return dDeliverycode;        }        public void setdDeliverycode(String dDeliverycode) {            this.dDeliverycode = dDeliverycode;        }        @XmlAttribute(name = "cargo")        public String getCargo() {            return cargo;        }        public void setCargo(String cargo) {            this.cargo = cargo;        }        @XmlAttribute(name = "cargo_total_weight")        public Float getCargoTotalWeight() {            return cargoTotalWeight;        }        public void setCargoTotalWeight(Float cargoTotalWeight) {            this.cargoTotalWeight = cargoTotalWeight;        }        @XmlAttribute(name = "sendstarttime")        public String getSendstarttime() {            return sendstarttime;        }        public void setSendstarttime(String sendstarttime) {            this.sendstarttime = sendstarttime;        }        @XmlAttribute(name = "mailno")        public String getMailno() {            return mailno;        }        public void setMailno(String mailno) {            this.mailno = mailno;        }        @XmlAttribute(name = "remark")        public String getRemark() {            return remark;        }        public void setRemark(String remark) {            this.remark = remark;        }        @XmlElement(name = "AddedService")        public AddedService getAddedService() {            return addedService;        }        public void setAddedService(AddedService addedService) {            this.addedService = addedService;        }    }    public static class AddedService {        private String name;        private String value;        private String value1;        private String value2;        private String value3;        @XmlAttribute(name = "name")        public String getName() {            return name;        }        public void setName(String name) {            this.name = name;        }        @XmlAttribute(name = "value")        public String getValue() {            return value;        }        public void setValue(String value) {            this.value =http://www.mamicode.com/ value;        }        @XmlAttribute(name = "value1")        public String getValue1() {            return value1;        }        public void setValue1(String value1) {            this.value1 = value1;        }        @XmlAttribute(name = "value2")        public String getValue2() {            return value2;        }        public void setValue2(String value2) {            this.value2 = value2;        }        @XmlAttribute(name = "value3")        public String getValue3() {            return value3;        }        public void setValue3(String value3) {            this.value3 = value3;        }    }    public static class Extra {        private String e1;        @XmlAttribute(name = "e1")        public String getE1() {            return e1;        }        public void setE1(String e1) {            this.e1 = e1;        }    }}
package www.garbin.com.pojo;import javax.xml.bind.annotation.XmlAttribute;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;import javax.xml.bind.annotation.XmlValue;import java.io.Serializable;/** * Created by linjiabin on 14/11/28. */@XmlRootElement(name = "Response")public class Response implements Serializable {    private String service;    private String head;    private Error error;    private Body body;    @XmlAttribute(name = "service")    public String getService() {        return service;    }    public void setService(String service) {        this.service = service;    }    @XmlElement(name = "Head")    public String getHead() {        return head;    }    public void setHead(String head) {        this.head = head;    }    @XmlElement(name = "ERROR")    public Error getError() {        return error;    }    public void setError(Error error) {        this.error = error;    }    @XmlElement(name = "Body")    public Body getBody() {        return body;    }    public void setBody(Body body) {        this.body = body;    }    public static class Error {        private String value;        private String code;        @XmlValue        public String getValue() {            return value;        }        public void setValue(String value) {            this.value =http://www.mamicode.com/ value;        }        @XmlAttribute(name = "code")        public String getCode() {            return code;        }        public void setCode(String code) {            this.code = code;        }    }    public static class Body {        private OrderResponse orderResponse;        @XmlElement(name = "OrderResponse")        public OrderResponse getOrderResponse() {            return orderResponse;        }        public void setOrderResponse(OrderResponse orderResponse) {            this.orderResponse = orderResponse;        }    }    public static class OrderResponse {        private String orderId;        private String mailno;        private String origincode;        private String destcode;        private String filterResut;        private String remark;        @XmlAttribute(name = "orderid")        public String getOrderId() {            return orderId;        }        public void setOrderId(String orderId) {            this.orderId = orderId;        }        @XmlAttribute(name = "mailno")        public String getMailno() {            return mailno;        }        public void setMailno(String mailno) {            this.mailno = mailno;        }        @XmlAttribute(name = "origincode")        public String getOrigincode() {            return origincode;        }        public void setOrigincode(String origincode) {            this.origincode = origincode;        }        @XmlAttribute(name = "destcode")        public String getDestcode() {            return destcode;        }        public void setDestcode(String destcode) {            this.destcode = destcode;        }        @XmlAttribute(name = "filter_result")        public String getFilterResut() {            return filterResut;        }        public void setFilterResut(String filterResut) {            this.filterResut = filterResut;        }        @XmlAttribute(name = "remark")        public String getRemark() {            return remark;        }        public void setRemark(String remark) {            this.remark = remark;        }    }}
package www.garbin.com.test;import www.garbin.com.pojo.Request;import www.garbin.com.utils.XMLUtils;import javax.xml.bind.JAXBException;import java.rmi.RemoteException;import java.util.Random;/** * Created by linjiabin on 14/11/28. */public class TestXMl {    public static void main(String[] args) throws JAXBException, RemoteException {        Request request = new Request();        request.setLang("zh-CN");        request.setService("OrderService");        Request.Body body = new Request.Body();        Request.Order requestOrder = new Request.Order();        requestOrder.setOrderId("WSD_22222232" + "_" + new Random().nextInt());        requestOrder.setdAddress("福建厦门市思明区软件园二期望海路55号");        requestOrder.setjAddress("福建厦门市思明区软件园二期望海路55号");        requestOrder.setdTel("13506962224");        requestOrder.setjTel("13514087953");        requestOrder.setExpressType("2");        requestOrder.setParcelQuantity(1);        requestOrder.setPayMethod("1");        Request.OrderOption orderOption = new Request.OrderOption();        orderOption.setCustId("5555555555");        Request.AddedService addedService = new Request.AddedService();        addedService.setName("COD");        addedService.setValue("1111");        addedService.setValue1("5555555555");        orderOption.setAddedService(addedService);        requestOrder.setOrderOption(orderOption);        body.setOrder(requestOrder);        request.setBody(body);        request.setHead("SHFJ,Eta7siUxZX5zIfNO");        String xmlStr = XMLUtils.bean2Xml(request);        System.out.println(xmlStr);    }}

 

jaxb xml to bean