XML→JSON変換

XMLドキュメントをきれいなJSONに変換します。

ブラウザ内で動作します。入力した内容はどこにも送信されません。

XMLをJSONに変換する方法

  1. XMLを貼り付けるかアップロードします。
  2. チェックボックスで属性を含めるかどうかを選びます。
  3. JSONをコピーまたはダウンロードします。

例:XMLを入力、JSONを出力

XMLJSON
<name>Sam</name>{"name":"Sam"}
<item id="5">Widget</item>{"item":{"@_id":"5","#text":"Widget"}}
<tag>a</tag><tag>b</tag>{"tag":["a","b"]}

XML→JSONが保持するもの

  • チェックボックスがオンの場合、属性は@_で始まるキーとして保持されます。
  • 要素が属性とテキストの両方を持つ場合、テキスト内容は#textキーの下に保持されます。
  • 繰り返される兄弟タグは、ドキュメント内の順序通りにJSON配列になります。
  • 007のように先頭にゼロが付く数値はテキストのまま保持され、IDが変わることはありません。

不正なXMLのよくある原因

  • 閉じられていない、または一致しないタグ。
  • &amp;や&lt;と書くべき箇所にある裸の&や<。
  • 整形式のXMLはルート要素を1つしか許可しないため、トップレベルに2つの要素がある場合。

XML→JSONが役立つ場面

  • 古いSOAP APIのレスポンスを、最新のJSONベースのフロントエンドで読み込む。
  • スクリプトでループ処理できるように、RSSやAtomフィードをJSONに変換する。
  • XMLしか扱えないエンタープライズソフトから書き出された設定ファイルを調べる。
  • 本格的なインポートパイプラインを書く前に、レガシーシステムの書き出しの中身を確認する。

XML→JSONのFAQ

XMLの属性はどうなりますか?

@_で始まる名前のフィールドとして保持され、id="5"は"@_id": "5"になります。「属性を含める」をオフにすれば除外されます。

繰り返し要素はどう処理されますか?

同じタグ名を持つ兄弟要素はJSON配列になります。1回しか現れないタグは単一の値のままです。

数値は変換されますか?

42のような単純な数値はJSONの数値になります。007のように先頭にゼロが付く値はテキストのままとなり、コードやIDが変わってしまうことを防ぎます。

XMLが不正だと表示されるのはなぜですか?

多くの場合、タグが閉じられていない、終了タグが一致しない、または&amp;と書くべき箇所に裸のアンパサンドがあることが原因です。エラーには行と列が示されます。

XMLの名前空間は保持されますか?

名前空間の接頭辞はタグ名の一部として残り、例えばns:idはそのままns:idという名前のキーになります。このツールは名前空間URIを別の何かに解決することはありません。

<br/>のような自己終了タグはどうなりますか?

空文字列の値になります。より長い<br></br>と書いた場合と同じ結果です。

XMLのコメントはどうなりますか?

削除されます。JSONにはコメント構文がないため、要素のデータだけが変換されます。

DOCTYPEを持つXMLファイルも変換できますか?

はい、DOCTYPEは読み取られますが、XMLの検証を制御するだけで引き継ぐべき独自のデータを持たないため、JSON出力には含まれません。

関連ツール