XML ⇄ JSON Converter

このツールについて

XML と JSON を相互変換します。ラウンドトリップ(そのまま変換→そのまま戻す)を重視したロジックに修正済みです。
既定では 同名の繰返し要素は配列にするオフにし、2件以上あるときのみ配列化します。
JSONルートが配列の場合、XMLは <root><item>…</item>…</root> で表現し、XML→JSONではこの形を配列に復元します。 すべての処理はブラウザ内で完結し、データは外部送信されません。

XML ⇄ JSON 変換

使い方

  1. 左に XML または JSON を貼り付け。
  2. XML → JSON または JSON → XML を押下。
  3. 必要に応じてインデントや属性/テキストのキー、ネームスペース保持、配列の扱いを調整。
  4. Validate ボタンで構文チェック。

サンプル

XML → JSON:

<user id="42">
  <name>Taro</name>
  <role>admin</role>
  <role>editor</role>
</user>
{
  "user": {
    "@id": "42",
    "name": "Taro",
    "role": ["admin", "editor"]
  }
}

補足

  • 属性は [属性プレフィックス][属性名] で表現(既定 @id など)。
  • 要素本文は [テキストキー](既定 #text)。
  • 同名要素はデフォルトでは単一値のまま、2件以上ある場合のみ配列化します。
  • JSONルートが配列のときは、XMLでは <root><item>…</item>…</root> で表現します(アイテム名は変更可)。
  • 空要素はテキストも属性も無ければ空オブジェクト {} として出力します。

注意事項(等価性の限界)

極力「元ファイルのjson」→xml→「戻したjson」と戻したときに同一のファイルが得られるようにしていますが、次のようなケースは諦めてください。

元ファイルのjson:


    "urls": [
             "admin.microsoft.com"
            ],
    "expressRoute": false,
    "id": 160,

戻したjson:


    "urls": "admin.microsoft.com",
    "expressRoute": "false",
    "id": "160",

※XMLとjsonの型の取り扱いの違いによるため、回避方法(XML側の型アノテーション等)もないことはないものの厳密な等価性はなかなか困難。