欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用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)文章

  • springboot項目如何防止XSS攻擊

    springboot項目如何防止XSS攻擊

    XSS攻擊全稱跨站腳本攻擊,是一種在web應(yīng)用中的計算機安全漏洞,允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。本文介紹防止XSS攻擊的方法
    2021-06-06
  • SpringBoot 使用 OpenAPI3 規(guī)范整合 knife4j的詳細(xì)過程

    SpringBoot 使用 OpenAPI3 規(guī)范整合 knife4j的詳細(xì)過程

    Swagger工具集使用OpenAPI規(guī)范,可以生成、展示和測試基于OpenAPI規(guī)范的API文檔,并提供了生成客戶端代碼的功能,本文給大家介紹SpringBoot使用OpenAPI3規(guī)范整合knife4j的詳細(xì)過程,感興趣的朋友跟隨小編一起看看吧
    2023-12-12
  • java實現(xiàn)客戶信息管理系統(tǒng)

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

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)客戶信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • java學(xué)習(xí)之一維數(shù)組中重復(fù)元素的去除

    java學(xué)習(xí)之一維數(shù)組中重復(fù)元素的去除

    關(guān)于一維數(shù)組中有重復(fù)的元素該怎么剔除,作為java初學(xué)者的我整理出不調(diào)用任何特殊庫的基礎(chǔ)方法,這種思想在其他語言也適用,有需要的朋友可以借鑒參考下
    2021-09-09
  • JDK17安裝教程以及其環(huán)境變量配置教程

    JDK17安裝教程以及其環(huán)境變量配置教程

    環(huán)境變量對Java初學(xué)者來說真的是一件頭疼的事,本人也經(jīng)歷過這樣的事情,這篇文章主要給大家介紹了關(guān)于JDK17安裝教程以及其環(huán)境變量配置的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • ArrayList的自動擴充機制實例解析

    ArrayList的自動擴充機制實例解析

    本文主要介紹了ArrayList的自動擴充機制,由一個題目切入主題,逐步向大家展示了ArrayList的相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • IDEA使用Tomcat運行web項目教程分享

    IDEA使用Tomcat運行web項目教程分享

    在非Spring Boot項目中運行Nacos示例,需要手動配置Tomcat容器,本文介紹了如何在IDEA中配置Tomcat,并詳細(xì)解決了配置過程中可能遇到的異常情況,步驟包括修改IDEA項目結(jié)構(gòu)、添加Web模塊、配置Artifacts和Tomcat Server
    2024-10-10
  • Java基于Socket實現(xiàn)簡單的多線程回顯服務(wù)器功能示例

    Java基于Socket實現(xiàn)簡單的多線程回顯服務(wù)器功能示例

    這篇文章主要介紹了Java基于Socket實現(xiàn)簡單的多線程回顯服務(wù)器功能,結(jié)合實例形式分析了java使用socket進(jìn)行多線程數(shù)據(jù)傳輸?shù)南嚓P(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Java 詳解異常的處理機制

    Java 詳解異常的處理機制

    異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的。比如你的代碼少一個分號,那運行出來結(jié)果是提示是錯誤 java.lang.Error;如果你用System.out.println(11/0),那你是因為用0做了除數(shù),會拋出 java.lang.ArithmeticException 的異常
    2021-11-11
  • maven setting多倉庫配置方式

    maven setting多倉庫配置方式

    這篇文章主要介紹了maven setting多倉庫配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評論