JavaのJSON-lib APIを使ってBeanをXMLに変換する方法
net.sf.json.xml.XMLSerializerクラスは、JSONをXMLに変換するためのユーティリティクラスです。JSONObjectインスタンスをXMLに変換する際、このクラスはJSONへ戻すためのヒント(型情報など)をXMLに付与することができます。
XMLSerializerクラスのwrite()メソッドを使用すると、JSON値をUTF-8エンコーディングのXML文字列として書き出し、整形式(well-formed)なXMLドキュメントの文字列表現を返します。
write()メソッドの構文
public String write(JSON json)
実装例
以下は、Studentクラス(Bean)のオブジェクトをJSONObjectに変換し、さらにXMLSerializerを使ってXML文字列に出力するサンプルコードです。
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
public class ConvertBeanToXMLTest {
public static void main(String[] args) {
Student student = new Student("Sai", "Adithya", 25, "Pune");
JSONObject jsonObj = JSONObject.fromObject(student);
System.out.println(jsonObj.toString(3)); // JSONを見やすく整形して出力
XMLSerializer xmlSerializer = new XMLSerializer();
String xml = xmlSerializer.write(jsonObj);
System.out.println(xml);
}
public static class Student {
private String firstName, lastName, address;
public int age;
public Student(String firstName, String lastName, int age, String address) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.address = address;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public int getAge() {
return age;
}
public String getAddress() {
return address;
}
}
}
出力結果
{
"firstName": "Sai",
"lastName": "Adithya",
"address": "Pune",
"age": 25
}
<?xml version="1.0" encoding="UTF-8"?>
<o>
<address type="string">Pune</address>
<age type="number">25</age>
<firstName type="string">Sai</firstName>
<lastName type="string">Adithya</lastName>
</o>
処理の流れのポイント
- JSONObject.fromObject():Javaオブジェクト(Bean)からJSONObjectを生成します。ゲッターメソッドが定義されているプロパティが自動的にJSONのキーとして変換されます。
- toString(3):引数にインデント幅を指定すると、JSONを読みやすい形式(pretty print)で出力できます。
- XMLSerializer.write():JSONObjectをXML文字列に変換します。各要素にはtype属性(stringやnumberなど)が自動的に付与され、この情報をもとにXMLから元のJSONへ逆変換することも可能です。
このように、JSON-libのXMLSerializerを利用すれば、わずか数行のコードでBeanオブジェクトをJSON経由でXMLに変換でき、システム間のデータ連携などで異なるデータ形式が必要な場面で非常に便利です。
-
JavaでXMLをJSON配列に変換する方法
JSON(JavaScript Object Notation)は、軽量なデータ交換フォーマットであり、キーと値のペア形式でデータを表現します。Javaでは、org.json.XMLクラスを使用することで、XMLをJSON配列へ簡単に変換できます。このクラスが提供する静的メソッドXML.toJSONObject()を使えば、XML文字列をJSONObjectに変換することが可能です。構文public static JSONObject toJSONObject(java.lang.String string) throws JSONExceptionこのメソッドはXML形式の文字列を引数として
-
JavaでCLOB型を文字列(String)に変換する方法をわかりやすく解説
CLOB(Character Large Object)は、SQLの組み込みデータ型の一つで、大量のテキストデータを格納するために使用されます。このデータ型を利用すると、最大2,147,483,647文字までのデータを保存することが可能です。 JDBC APIのjava.sql.Clobインターフェースが、このCLOBデータ型を表現します。なお、JDBCにおけるClobオブジェクトはSQLロケーター(locator)を使って実装されているため、実際のデータそのものではなく、SQL CLOBへの論理ポインターを保持している点に注意してください。 MySQLデータベースでは、TINYTEXT、T