Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 Jackson 라이브러리로 POJO를 XML로 변환하는 방법

Jackson은 Java 기반 라이브러리로, Java 객체를 JSON으로 변환하거나 그 반대로 변환할 때 유용하게 사용됩니다. Jackson API는 다른 유사 API에 비해 처리 속도가 빠르고 메모리 사용량이 적어 대용량 객체를 다룰 때 특히 효율적입니다.

POJO(Plain Old Java Object)를 XML 형식으로 변환하려면 XmlMapper 클래스의 writeValueAsString() 메서드를 사용하며, 이 메서드에 변환하고자 하는 POJO 인스턴스를 인수로 전달하면 됩니다.

사전 준비: 의존성 추가

XML 직렬화 기능을 사용하려면 프로젝트에 jackson-dataformat-xml 모듈이 포함되어 있어야 합니다. Maven 기준으로 다음과 같이 의존성을 추가할 수 있습니다.

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.15.2</version>
</dependency>

메서드 시그니처

public String writeValueAsString(Object value) throws JsonProcessingException

예제 코드

아래 예제는 Person이라는 간단한 POJO 클래스를 정의하고, XmlMapper를 사용해 이 객체를 XML 문자열로 변환하는 과정을 보여줍니다.

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

public class POJOToXmlTest {
    public static void main(String args[]) throws Exception {
        try {
            // XmlMapper 인스턴스 생성
            XmlMapper xmlMapper = new XmlMapper();

            // POJO 객체 생성 및 값 설정
            Person pojo = new Person();
            pojo.setFirstName("Raja");
            pojo.setLastName("Ramesh");
            pojo.setAddress("Hyderabad");

            // POJO를 XML 문자열로 변환
            String xml = xmlMapper.writeValueAsString(pojo);
            System.out.println(xml);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

// Person 클래스
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;
    }
}

실행 결과

위 프로그램을 실행하면 다음과 같이 Person 객체가 XML 형식의 문자열로 출력됩니다. 각 필드 이름이 XML 태그로 매핑되는 것을 확인할 수 있습니다.

<Person xmlns="">
    <firstName>Raja</firstName>
    <lastName>Ramesh</lastName>
    <address>Hyderabad</address>
</Person>

정리

이처럼 Jackson의 XmlMapper를 활용하면 별도의 복잡한 설정 없이 몇 줄의 코드만으로 Java POJO 객체를 손쉽게 XML로 직렬화할 수 있습니다. 반대로 readValue() 메서드를 사용하면 XML 문자열을 다시 Java 객체로 역직렬화할 수도 있습니다.