JVM: org.json での XML と JSON の相互変換


XML と JSON の変換を org.json を使って行う方法を紹介します。

環境

  • Kotlin 1.2.41
  • org.json 20180130

コード例

Gradle を使ってプロジェクトを作成します。 dependenciesorg.json を追加します。

変換そのものは org.json がやってくれます。 Kotlin ではそれを呼び出すだけです。

XML から JSON への変換

XML.toString で XML から JSON への変換ができます。 第1引数は JSONObject のインスタンス、 第2引数は、XML全体をタグで囲む場合にタグ名を渡します。

出力されるJSONのキーは、文字列としてソートされて出力されます。

XMLの単独タグ、属性を含んだ実行サンプルを掲載します。

JSON から XML への変換

JSONObject の toString メソッド を使います。 引数でインデントに使用する半角スペースの数を渡します。 0 を渡すと改行なしの文字列がアウトプットされます。

属性付きのXMLをJSONに変換したものは、元のXMLに正しく逆変換できません。

実行サンプルを掲載します。

サンプルコードは GitHub にPUSHしてあります。