XML 轉(zhuǎn) Java 對象

2018-12-16 21:43 更新

本節(jié)的演示,Java bean 對象依然使用 Student.java,在上一節(jié)已經(jīng)定義過了。

public static void xmlTojava() throws Exception {
        // 獲取JAXB的上下文環(huán)境,需要傳入具體的 Java bean -> 這里使用Student
        JAXBContext context = JAXBContext.newInstance(Student.class);
        // 創(chuàng)建 UnMarshaller 實例
        Unmarshaller unmarshaller = context.createUnmarshaller();
        // 加載需要轉(zhuǎn)換的XML數(shù)據(jù) -> 這里使用InputStream,還可以使用File,Reader等
        InputStream stream = SimpleTest.class.getClassLoader().getResourceAsStream("lesson1.xml");
        // 將XML數(shù)據(jù)序列化 -> 該方法的返回值為Object基類,需要強轉(zhuǎn)類型
        Student stu = (Student) unmarshaller.unmarshal(stream);
        // 將結(jié)果打印到控制臺
        System.out.println(stu);
    }

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

所需的lesson1.xml文件如下:

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

這個文件,其實就是上一節(jié)中輸出的數(shù)據(jù)。

    public static void main(String[] args) throws Exception {
        xmlTojava();
    }

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

Student [id=001, name=Tom, age=22]

有幾點需要注意:

  • 可以有多種方式加載XML數(shù)據(jù),從文件中加載只是其中的一種
  • getResourceAsStream("file.xml")方法需要將該XML文件放置于/resources目錄下
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號