Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのJacksonライブラリでPOJOをXMLに変換する方法

```html

JacksonはJavaベースの人気ライブラリで、主にJavaオブジェクトとJSONの相互変換に利用されますが、jackson-dataformat-xmlモジュールを組み合わせることで、XML形式への変換にも簡単に対応できます。Jackson APIは他のライブラリと比較して処理速度が速く、必要なメモリ領域も少ないため、大きなオブジェクトを扱う場合でも高いパフォーマンスを発揮します。

POJO(Plain Old Java Object)をXML形式に変換するには、XmlMapperクラスのwriteValueAsString()メソッドを使用します。このメソッドの引数として変換対象のPOJOインスタンスを渡すだけで、オブジェクトがXML文字列へとシリアライズされます。

依存関係の追加

XmlMapperクラスを使用するには、あらかじめプロジェクトにjackson-dataformat-xmlの依存関係を追加しておく必要があります。Mavenを利用している場合は、pom.xmlに以下のように記述してください。

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.17.1</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 xmlns="">
    <firstName>Raja</firstName>
    <lastName>Ramesh</lastName>
    <address>Hyderabad</address>
</Person>

ポイント解説

  • XmlMapper:JSON用のObjectMapperに相当するXML版のマッパークラスで、JavaオブジェクトとXMLの相互変換を担います。
  • writeValueAsString():渡されたオブジェクトをXML形式の文字列にシリアライズします。変換処理に失敗した場合はJsonProcessingExceptionがスローされる可能性があります。
  • ゲッター/セッターを持つ標準的なPOJOであれば、特別なアノテーションを付与しなくても、フィールド名がそのままXML要素名として出力されます。
  1. 【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法

    GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを

  2. Javaのjson-simpleライブラリを使ってJSON文字列をJavaオブジェクトに変換する方法

    JSON(JavaScript Object Notation)は、広く利用されているデータ交換フォーマットの一つです。軽量であり、プログラミング言語に依存しないという特徴を持っています。 json-simpleは、JSONテキストのエンコード(生成)やデコード(解析)を行うための、シンプルで軽量なJava用JSON処理ライブラリです。依存関係が少なく導入も容易なため、小規模なプロジェクトや学習用途に適しています。 以下のサンプルプログラムでは、json-simpleライブラリを使用して、JSON形式の文字列をJavaオブジェクトに変換する方法を紹介します。 サンプルコード import or