JavaのJacksonライブラリでPOJOをXMLに変換する方法
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要素名として出力されます。
-
【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法
GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを
-
Javaのjson-simpleライブラリを使ってJSON文字列をJavaオブジェクトに変換する方法
JSON(JavaScript Object Notation)は、広く利用されているデータ交換フォーマットの一つです。軽量であり、プログラミング言語に依存しないという特徴を持っています。 json-simpleは、JSONテキストのエンコード(生成)やデコード(解析)を行うための、シンプルで軽量なJava用JSON処理ライブラリです。依存関係が少なく導入も容易なため、小規模なプロジェクトや学習用途に適しています。 以下のサンプルプログラムでは、json-simpleライブラリを使用して、JSON形式の文字列をJavaオブジェクトに変換する方法を紹介します。 サンプルコード import or