XML→JSON変換ツールとは?
XML to JSON ConverterはXMLドキュメントを構造化されたJSONに即座に変換します。属性、ネストされた要素、テキストノード、CDATAセクション、名前空間に対応。XML APIからJSONベースシステムへの移行や、JavaScriptでのXMLデータ利用に便利です。
変換器は内部で fast-xml-parser を使っていて、実運用の XML、つまり名前空間、CDATA ブロック、混合コンテンツ、任意の深さのネストをきちんと扱います。属性は出力で @_ の接頭辞が付き、繰り返し要素は自動的に配列にまとめられ、コンパクトモードで一行出力したり、2 または 4 スペースのインデントで整形したりできます。
使い方
- ステップ1 — XMLコンテンツを貼り付けるか、XMLファイルをアップロードします。構造が検証され、パースエラーが即座に表示されます。
- ステップ2 — 変換オプションを設定します:属性を保持するか(@attr形式)、テキストのみの要素を折りたたむか、繰り返し要素を配列として保持するか。
- ステップ3 — 整形されたJSON出力をコピーするか、.jsonファイルとしてダウンロードします。
使用するタイミング
- 古い SOAP や RSS フィードを、JSON を期待する JavaScript フロントエンドに合わせて近代化するとき。
- アンケートやテスト結果の XML データを、JSON ドキュメントで保存する NoSQL データベースに取り込むとき。
- ベンダーの XML エクスポートから設定を取り出して、YAML や JSON のパイプライン用に書き直すとき。
結果
SOAP APIから属性付きのネストされた製品要素を含むXMLレスポンスを受け取りました。貼り付けると、<product id="123"><name>Widget</name></product>が{"product":{"@id":"123","name":"Widget"}}というクリーンなJSONに変換され、フロントエンドコードですぐに使えます。
よくある質問
- XML の属性は JSON 出力でどう表現されますか?
- 属性は子要素と区別するために @_ の接頭辞が付きます。たとえば <book id="42"><title>Hi</title></book> は {"book":{"@_id":"42","title":"Hi"}} になります。後段のコードが要素の中身だけ必要なら「属性を保持」をオフにして外せます。
- XML 要素が繰り返されたとき、たとえば <item> が複数あるとどうなりますか?
- 繰り返し要素は自動的に JSON 配列にまとめられます。最初の出現で配列が作られ、続く兄弟は追加され、単発のものは普通のオブジェクトのままです。変換後のフィードに対して JSON 利用者が想定する慣例どおりです。
- CDATA、名前空間、コメントは扱えますか?
- CDATA の中身は #cdata キーの下にそのまま保存されます。名前空間は要素名の一部として保持されます(xmlns:prefix も付いたまま)。XML コメントは破棄されます。JSON 側に対応するコメント構文がないためです。
- 数字が数値ではなく文字列で出てくるのはなぜ?
- コンバーターは既定で数字テキストを数値に、true/false テキストを真偽値に変換するので、42 は "42" ではなく 42 になります。連携先 API がすべての値を文字列で受け取りたい場合や、先頭ゼロや ID 系フィールドをそのまま残したい場合は、設定で「数値と真偽値を解析」をオフにしてください。
- どれくらいのサイズの XML まで処理できますか?
- 完全に端末側で動くので、現実的な上限は搭載メモリです。1 ドキュメントあたり通常は数十 MB 程度。GB 級の巨大フィードはストリーミングパーサーが必要ですが、通常の API ペイロードやエクスポート、設定ファイルでは上限に当たりません。