最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用JAXBContext輕松實現(xiàn)Java和xml的互相轉(zhuǎn)換方式

 更新時間:2021年08月10日 10:11:12   作者:它山之石,可以攻玉  
這篇文章主要介紹了依靠JAXBContext輕松實現(xiàn)Java和xml的互相轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

JAXBContext實現(xiàn)Java和xml的互相轉(zhuǎn)換

類文件注解:@XmlRootElement不可缺少

<span style="font-size:14px;">@XmlRootElement  
public class Man {  
    private String name;  
    private int age;
    public Student() {  
        super();  
    } 
    public Student(String name, int age) {  
        super();  
        this.name = name;  
        this.age = age;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }   
}  </span>

Java 轉(zhuǎn)換 Xml:

@Test  
public void testJava2Xml(){  
    try {  
        JAXBContext jc = JAXBContext.newInstance(Man.class);  
        Marshaller ms = jc.createMarshaller();  
        Man man = new Man("man",100);  
        ms.marshal(man, System.out);  
    } catch (JAXBException e) {  
        e.printStackTrace();  
    }  
}  

Xml 轉(zhuǎn)換 Java:

@Test  
public void testXml2Java() throws JAXBException{  
    String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Man><age>100</age><name>man</name></Man>";  
    JAXBContext jc = JAXBContext.newInstance(Man.class);  
    Unmarshaller unmar = jc.createUnmarshaller();  
    Man man = (Man) unmar.unmarshal(new StringReader(xml));  
    System.out.println(man.getName());  
} 

JAXBContext 解析 xml

前提:

package com.sgcc.load.vo;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
 
@XmlRootElement(name = "gldxresult")
@XmlAccessorType(XmlAccessType.FIELD)
public class XmlAnalysis { // 泛化, 聚合 
	@XmlElement(name = "success")
	private String success;
	@XmlElement(name = "totalnum")
	private String totalnum; 
 
    @XmlElement(name = "accounts")
    List<Accounts> accounts = new ArrayList<>();
  	
	public List<Accounts> getAccounts() {
		return accounts;
	}
 
	public void setAccounts(List<Accounts> accounts) {
		this.accounts = accounts;
	}
 
	public String getSuccess() {
		return success;
	}
 
	public void setSuccess(String success) {
		this.success = success;
	}
 
	public String getTotalnum() {
		return totalnum;
	}
 
	public void setTotalnum(String totalnum) {
		this.totalnum = totalnum;
	}  
}
package com.sgcc.load.vo; 
import java.util.ArrayList;
import java.util.List; 
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement; 
@SuppressWarnings("serial")
@XmlAccessorType(XmlAccessType.FIELD)
public class Accounts extends ArrayList<Account>{
   
   @XmlElement(name = "account")
   public List<Account> getAccount() {
	        return this;
   }   
}
package com.sgcc.load.vo;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement; 
@XmlAccessorType(XmlAccessType.FIELD)
public class Account {
	@XmlElement(name = "seqid")
	private String seqid;
    @XmlElement(name = "dxid")
    private String dxid;
    @XmlElement(name = "compid")
    private String compid;
    @XmlElement(name = "rspcode")
    private String rspcode;
    @XmlElement(name = "code")
    private String code;
    @XmlElement(name = "name")
    private String name;      
   
	public String getSeqid() {
		return seqid;
	}
	public void setSeqid(String seqid) {
		this.seqid = seqid;
	}
	public String getDxid() {
		return dxid;
	}
	public void setDxid(String dxid) {
		this.dxid = dxid;
	}
	public String getCompid() {
		return compid;
	}
	public void setCompid(String compid) {
		this.compid = compid;
	}
	public String getRspcode() {
		return rspcode;
	}
	public void setRspcode(String rspcode) {
		this.rspcode = rspcode;
	}
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}      
}

測試:

package com.sgcc.load.test; 
import java.io.StringReader; 
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller; 
import com.sgcc.load.vo.Accounts;
import com.sgcc.load.vo.XmlAnalysis; 
import groovyjarjarcommonscli.ParseException; 
public class Test {
	
	private static XmlAnalysis transToVOs(String webserviceMsg) throws JAXBException, ParseException {
		final StringReader reader = new StringReader(webserviceMsg);
		JAXBContext ctx=JAXBContext.newInstance(new XmlAnalysis().getClass());
		Unmarshaller um=ctx.createUnmarshaller();
		XmlAnalysis ds=(XmlAnalysis)um.unmarshal(reader);		
		return ds;
	}
	public static void main(String[] args) {
		String xmlMsg = "<?xml version=\"1.0\" encoding=\"GBK\"?> \n<gldxresult><success>0</success><totalnum>1</totalnum>"+
"<accounts><yzy>hahaha</yzy><account><seqid></seqid><dxid>1136005118</dxid><compid>0603</compid><rspcode>New0001</rspcode><rspmsg>值:00 沒有匹配到分類</rspmsg>"+
"<code>EHBSXPZYFDC000</code><name>哈哈哈哈哈哈哈哈哈</name></account></accounts></gldxresult>";
		
		try{
			XmlAnalysis transToVOs = transToVOs(xmlMsg);
            for(int index = 0;index<transToVOs.getAccounts().get(0).getAccount().size();index++){
    			System.out.println(transToVOs.getAccounts().get(0).getAccount().get(index).getName());
            }
		}catch(Exception e){
			e.printStackTrace();
		}
	}	
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring動態(tài)注冊bean?AOP失效原理解析

    spring動態(tài)注冊bean?AOP失效原理解析

    這篇文章主要為大家介紹了spring動態(tài)注冊bean使AOP失效原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Spring Cloud Netflix架構(gòu)淺析(小結(jié))

    Spring Cloud Netflix架構(gòu)淺析(小結(jié))

    這篇文章主要介紹了Spring Cloud Netflix架構(gòu)淺析(小結(jié)),詳解的介紹了Spring Cloud Netflix的概念和組件等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • java實現(xiàn)客戶信息管理系統(tǒng)

    java實現(xiàn)客戶信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)客戶信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • mybatis返回的map結(jié)果如何設(shè)置有序

    mybatis返回的map結(jié)果如何設(shè)置有序

    這篇文章主要介紹了mybatis返回的map結(jié)果如何設(shè)置有序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java POI實現(xiàn)將導(dǎo)入Excel文件的示例代碼

    Java POI實現(xiàn)將導(dǎo)入Excel文件的示例代碼

    這篇文章主要介紹了Java POI實現(xiàn)將導(dǎo)入Excel文件的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • 深入解析Java中volatile的底層原理

    深入解析Java中volatile的底層原理

    這篇文章主要介紹了深入解析Java中volatile的底層原理,volatile關(guān)鍵字用于保證變量的可見性和禁止指令重排序,即當(dāng)一個線程修改了volatile變量的值,其他線程能夠立即看到這個變量的最新值,而不是使用緩存中的舊值,需要的朋友可以參考下
    2023-07-07
  • Java無法獲取真實IP解決方案

    Java無法獲取真實IP解決方案

    這篇文章主要介紹了Java無法獲取真實IP解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Java中Stream流去除List重復(fù)元素的方法

    Java中Stream流去除List重復(fù)元素的方法

    這篇文章主要為大家詳細(xì)介紹了Java中Stream流去除List重復(fù)元素的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Spring事務(wù)處理原理步驟詳解

    Spring事務(wù)處理原理步驟詳解

    這篇文章主要介紹了Spring事務(wù)處理原理步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Java多條件判斷場景中規(guī)則執(zhí)行器的設(shè)計

    Java多條件判斷場景中規(guī)則執(zhí)行器的設(shè)計

    近日在公司領(lǐng)到一個小需求,需要對之前已有的試用用戶申請規(guī)則進(jìn)行拓展。本文去掉if 判斷,試試用一個規(guī)則執(zhí)行器來替代它,感興趣的可以了解一下
    2021-06-06

最新評論

醴陵市| 施秉县| 横山县| 蕲春县| 丘北县| 英吉沙县| 潼关县| 甘肃省| 板桥市| 碌曲县| 潼南县| 金乡县| 南宁市| 兰溪市| 昂仁县| 会昌县| 剑川县| 颍上县| 白水县| 永德县| 武义县| 彭泽县| 藁城市| 安阳市| 宜宾县| 凤山市| 新宾| 花莲市| 西宁市| 鄢陵县| 阿巴嘎旗| 封丘县| 太湖县| 苍南县| 鸡东县| 洪洞县| 邳州市| 肇州县| 华容县| 古交市| 蓝田县|