Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chuyển đổi XML sang POJO bằng thư viện Jackson trong Java

Jackson JSON là thư viện cho Java với khả năng data binding mạnh mẽ, cung cấp framework để serialize đối tượng Java tùy chỉnh sang JSON và deserialize JSON ngược lại thành đối tượng Java. Chúng ta cũng có thể chuyển đổi định dạng XML sang đối tượng POJO sử dụng phương thức readValue() của lớp XmlMapper.

Cú pháp

public <T> T readValue(XMLStreamReader r, Class<T> valueType) throws IOException

Ví dụ minh họa

import com.fasterxml.jackson.dataformat.xml.*;

public class XMLToPOJOTest {
    public static void main(String args[]) throws Exception {
        try {
            XmlMapper xmlMapper = new XmlMapper();
            Person pojo = xmlMapper.readValue(getXmlString(), Person.class);
            System.out.println(pojo);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    private static String getXmlString() {
        return "<person> <firstName>Adithya</firstName>" 
             + "<lastName>Jai</lastName>"
             + "<address>Bangalore</address>" + "</person>";
    }
}

// Lớp Person (POJO)
class Person {
    private String firstName;
    private String lastName;
    private String address;
    
    public String getFirstName() { return firstName; }
    public void setFirstName(String firstName) { this.firstName = firstName; }
    public String getLastName() { return lastName; }
    public void setLastName(String lastName) { this.lastName = lastName; }
    public String getAddress() { return address; }
    public void setAddress(String address) { this.address = address; }
    
    public String toString() {
        return "Person[ " + "firstName = " + firstName + ", lastName = " + lastName + ", address = " + address + " ]";
    }
}

Kết quả đầu ra

Person[ firstName = Adithya, lastName = Jai, address = Bangalore ]

Lưu ý: Cần thêm dependency jackson-dataformat-xml vào project. XmlMapper hỗ trợ các annotation như @JsonProperty, @JsonIgnore tương tự như ObjectMapper cho JSON.