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 = 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 = 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);
    }
}
原文地址:https://www.cnblogs.com/gabin/p/4198132.html