xml转为java

XmlConvertor--JAXBContext

 把要转化成Model类传入进newInstance()里 

package com.qbsea.xmlconvertor;

import com.qbsea.xmlconvertor.model.CmCore;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;

public class XmlConvertor {
	public static JAXBContext context;
	public static Unmarshaller unmarshaller;
	static {
		try {
			context = JAXBContext.newInstance(CmCore.class);
			unmarshaller = context.createUnmarshaller();
		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}

	public static <T> T getEntity(String xmlStr,Class<T> resultClass) {
		StringReader reader = new StringReader(xmlStr);
		try {
			Object obj = unmarshaller.unmarshal(reader);
			return (T)obj;
		} catch (JAXBException ex) {
			ex.printStackTrace();
			return null;
		}
	}
}

调用入口

参考XML报文

<?xml version="1.0" encoding="UTF-8"?>
<CMCORE xmlns="http://www.cm-inv.com/CMINV/2015/10">
    <CMAPI0008Rs>
        <CommonRsHdr>
            <StatusCode>0000</StatusCode>
            <ServerStatusCode>Success</ServerStatusCode>
            <SPRsUID>7832</SPRsUID>
            <RqUID>b2ebd12a-136b-43wb-s3a1-d9114c481ac2</RqUID>
        </CommonRsHdr>
				<list>
	        <cardDef>
	            <bindingName>name1</bindingName>
	            <bindingCardNo>cardNo1</bindingCardNo>
	            <bindingBank>bank1</bindingBank>
	            <bindingStatus>status01</bindingStatus>
	            <custId>custId001</custId>
	            <bankCode>001</bankCode>
	            <reservePhone>15011111111</reservePhone>
	        </cardDef>
	        <cardDef>
	            <bindingName>name2</bindingName>
	            <bindingCardNo>cardNo2</bindingCardNo>
	            <bindingBank>bank2</bindingBank>
	            <bindingStatus>status02</bindingStatus>
	            <custId>custId002</custId>
	            <bankCode>002</bankCode>
	            <reservePhone>15011111112</reservePhone>
	        </cardDef>
        </list>
    </CMAPI0008Rs>
</CMCORE>

 

xml 对应的实体类 

package-info.java

@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.cm-inv.com/CMINV/2015/10", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.qbsea.xmlconvertor.model;

CmCore.java

package com.qbsea.xmlconvertor.model;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
@XmlRootElement(name = "CMCORE")
public class CmCore implements Serializable {
	private Cmapi0008rs cmapi0008rs;//绑卡查询结果
	@XmlElement(name = "CMAPI0008Rs")
	public Cmapi0008rs getCmapi0008rs() {
		return cmapi0008rs;
	}
	public void setCmapi0008rs(Cmapi0008rs cmapi0008rs) {
		this.cmapi0008rs = cmapi0008rs;
	}
}

CommonRsHdr.java 

package com.qbsea.xmlconvertor.model;
import javax.xml.bind.annotation.XmlElement;
import java.io.Serializable;
public class CommonRsHdr implements Serializable{
	private String statusCode;
	private String serverStatusCode;
	private String sPRsUID;
	private String rqUID;
	//set and get method
	@XmlElement(name = "StatusCode")  
	public String getStatusCode() {
		return statusCode;
	}
	public void setStatusCode(String statusCode) {
		this.statusCode = statusCode;
	}
	@XmlElement(name = "ServerStatusCode")  
	public String getServerStatusCode() {
		return serverStatusCode;
	}
	public void setServerStatusCode(String serverStatusCode) {
		this.serverStatusCode = serverStatusCode;
	}
	@XmlElement(name = "SPRsUID")  
	public String getsPRsUID() {
		return sPRsUID;
	}
	public void setsPRsUID(String sPRsUID) {
		this.sPRsUID = sPRsUID;
	}
	@XmlElement(name = "RqUID")  
	public String getRqUID() {
		return rqUID;
	}
	public void setRqUID(String rqUID) {
		this.rqUID = rqUID;
	}
}

 Cmapi0008rs.java

package com.qbsea.xmlconvertor.model;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import java.io.Serializable;
import java.util.List;
public class Cmapi0008rs implements Serializable {
	private CommonRsHdr commonRsHdr;
	private List<CardDef> cardDefList;
	@XmlElement(name = "CommonRsHdr")
	public CommonRsHdr getCommonRsHdr() {
		return commonRsHdr;
	}
	public void setCommonRsHdr(CommonRsHdr commonRsHdr) {
		this.commonRsHdr = commonRsHdr;
	}
	@XmlElementWrapper(name="list")
	@XmlElement(name="cardDef")
	public List<CardDef> getCardDefList() {
		return cardDefList;
	}
	public void setCardDefList(List<CardDef> cardDefList) {
		this.cardDefList = cardDefList;
	}
}

CardDef.java 
 

package com.qbsea.xmlconvertor.model;
import javax.xml.bind.annotation.XmlElement;
import java.io.Serializable;
public class CardDef implements Serializable{
	private String bindingName;
	private String bindingCardNo;
	private String bindingBank ;
	private String bindingStatus ;
	private String custId ;
	private String bankCode ;
	private String reservePhone ;
	private String cityCode ;
	private String cityName ;
	private String provCode ;
	private String provName;
	private String mainFlag;
	private String binddingtime;
	//set and get method
	@XmlElement(name = "bindingName")   
	public String getBindingName() {
		return bindingName;
	}
	public void setBindingName(String bindingName) {
		this.bindingName = bindingName;
	}
	@XmlElement(name = "bindingCardNo")   
	public String getBindingCardNo() {
		return bindingCardNo;
	}
	public void setBindingCardNo(String bindingCardNo) {
		this.bindingCardNo = bindingCardNo;
	}
	@XmlElement(name = "bindingBank")   
	public String getBindingBank() {
		return bindingBank;
	}
	public void setBindingBank(String bindingBank) {
		this.bindingBank = bindingBank;
	}
	@XmlElement(name = "bindingStatus")   
	public String getBindingStatus() {
		return bindingStatus;
	}
	public void setBindingStatus(String bindingStatus) {
		this.bindingStatus = bindingStatus;
	}
	@XmlElement(name = "custId")  
	public String getCustId() {
		return custId;
	}
	public void setCustId(String custId) {
		this.custId = custId;
	}
	@XmlElement(name = "bankCode")  
	public String getBankCode() {
		return bankCode;
	}
	public void setBankCode(String bankCode) {
		this.bankCode = bankCode;
	}
	@XmlElement(name = "reservePhone")  
	public String getReservePhone() {
		return reservePhone;
	}
	public void setReservePhone(String reservePhone) {
		this.reservePhone = reservePhone;
	}
	@XmlElement(name = "cityCode")  
	public String getCityCode() {
		return cityCode;
	}
	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}
	@XmlElement(name = "cityName")  
	public String getCityName() {
		return cityName;
	}
	public void setCityName(String cityName) {
		this.cityName = cityName;
	}
	@XmlElement(name = "provCode")  
	public String getProvCode() {
		return provCode;
	}
	public void setProvCode(String provCode) {
		this.provCode = provCode;
	}
	@XmlElement(name = "provName")  
	public String getProvName() {
		return provName;
	}
	public void setProvName(String provName) {
		this.provName = provName;
	}
	@XmlElement(name = "mainFlag")  
	public String getMainFlag() {
		return mainFlag;
	}
	public void setMainFlag(String mainFlag) {
		this.mainFlag = mainFlag;
	}
    @XmlElement(name = "binddingtime")  
    public String getBinddingtime() {
        return binddingtime;
    }
    public void setBinddingtime(String binddingtime) {
        this.binddingtime = binddingtime;
    }
}

猜你喜欢

转载自blog.csdn.net/maqingbin8888/article/details/83304233