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

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に変換でき、システム間のデータ連携などで異なるデータ形式が必要な場面で非常に便利です。

  1. 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形式の文字列を引数として

  2. 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