XML ⇄ JSON Converter
このツールについて
XML と JSON を相互変換します。ラウンドトリップ(そのまま変換→そのまま戻す)を重視したロジックに修正済みです。
既定では 同名の繰返し要素は配列にするをオフにし、2件以上あるときのみ配列化します。
JSONルートが配列の場合、XMLは <root><item>…</item>…</root>
で表現し、XML→JSONではこの形を配列に復元します。
すべての処理はブラウザ内で完結し、データは外部送信されません。
XML ⇄ JSON 変換
—
使い方
- 左に XML または JSON を貼り付け。
- XML → JSON または JSON → XML を押下。
- 必要に応じてインデントや属性/テキストのキー、ネームスペース保持、配列の扱いを調整。
- 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側の型アノテーション等)もないことはないものの厳密な等価性はなかなか困難。