Java 對象轉(zhuǎn) XML

2018-12-16 21:35 更新

首先定義需要轉(zhuǎn)換的 Java bean Student.java

@XmlRootElement
public class Student {
    private String id;
    private String name;
    private Integer age;
 // setters, getters
}

為了節(jié)省篇幅,我省略了對象的setters, getters方法,當然,為了便于直觀地看到結(jié)果,還應(yīng)該覆蓋默認的 toString() 方法。

這個對象和我們常見的Java對象唯一的不同,就是在普通的Java類上添加了注解@XmlRootElement。

    public static void javaToxml(Student stu) throws Exception {
        // 獲取JAXB的上下文環(huán)境,需要傳入具體的 Java bean -> 這里使用Student
        JAXBContext context = JAXBContext.newInstance(Student.class);
        // 創(chuàng)建 Marshaller 實例
        Marshaller marshaller = context.createMarshaller();
        // 設(shè)置轉(zhuǎn)換參數(shù) -> 這里舉例是告訴序列化器是否格式化輸出
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
        // 構(gòu)建輸出環(huán)境 -> 這里使用標準輸出,輸出到控制臺Console
        PrintStream out = System.out;
        // 將所需對象序列化 -> 該方法沒有返回值
        marshaller.marshal(stu, out);
    }

這里演示了最基本的Java 對象轉(zhuǎn)XML過程。為了方便閱讀,每一步都有簡明注釋。

使用 JAXB 不需要引入第三方依賴jar包。

public static void main(String[] args) throws Exception {
        Student stu = new Student("001","Tom",22);
        javaToxml(stu);
    }

使用main方法簡單測試一下,在控制臺可以看到如下輸出。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student>
    <age>22</age>
    <id>001</id>
    <name>Tom</name>
</student>

有幾點需要注意:

  • JAXB 轉(zhuǎn)換對象必須屬于JAXBElement類型,或者使用 @XmlRootElement注解
  • JAXB 轉(zhuǎn)換對象必須擁有無參數(shù)構(gòu)造器(默認存在,如果被覆蓋,需要顯示指定)
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號