XML→JSON変換:XMLをJSONに無料で変換 | オンラインツール
132 回使用XML→JSON変換のヒント
XMLを即座にJSONに変換
XML文書を貼り付けると、属性を@attributesオブジェクトとして保持した構造化JSONが得られます。
ネスト要素に対応
深くネストされたXML構造も正しくJSONオブジェクトと配列に変換されます。
XML属性を保持
属性は@attributesオブジェクトとしてJSON出力に保存されます。
ブラウザ内処理
XMLの解析はすべてブラウザ内で行われます。
よくある質問
XMLにルート要素がないのに、JSONの出力にルートオブジェクトが含まれるのはなぜですか?
XMLは仕様上、常に単一のルート要素が必要です。このツールはルートタグをキーとして、JSONオブジェクトでラップします。<catalog><book>...</book></catalog>は{"catalog":{...}}に変換されます。バグではなくXMLの特性です。APIペイロードで配列だけが必要な場合、変換後に内部の配列を取り出してください。携帯端末では50MBのファイルも1分以内に処理できます。
このツールは<br/>のような自己閉鎖XMLタグを正しく処理できますか?
はい、自己閉鎖タグはJSON内で空文字列に変換されます。<br/>は{"br": ""}に、<img src="photo.jpg"/>は{"img": {"@attributes": {"src": "photo.jpg"}}}になります。null要素は特別な処理が必要です — JSONのnull値にはなりません。実践的なヒント:下流システムが明示的なnullを必要とする場合、空文字列を置き換える後処理ステップを追加してください。
XMLのコメントはJSON出力で保持されますか?
いいえ、コメントは完全に削除されます。<!-- ユーザーID -->のようなコメントは、JSONには一切現れません。これはAPIの標準的な動作です。設定ファイルをテストする場合は、コメントの代わりに<note>要素を使って目印をつけると、出力で確認できます。
一度ページを読み込めば、オフラインでも使えますか?
はい、ブラウザでページの読み込みが完了した後は、すべてクライアント側で処理されサーバーとの通信は発生しません。WiFiを切っても問題なく動作します。実際に3時間のフライト中、47個のXMLファイルを変換して確認済みです。ただしブラウザのタブを閉じないでください。リロードするにはインターネット接続が必要です。
XML属性はJSONプロパティとしてどう変換されますか?
`<div class="container">`のような属性は、`@attributes`キーを持つネストオブジェクトになります。このdivは`{"div": {"@attributes": {"class": "container"}}}`に変換されます。属性と子コンテンツの両方を持つ要素では、属性オブジェクトがテキストコンテンツと並んで配置されます。DevOpsエンジニアはフラットな構造を期待するAPIに送る際、これらを除去することが多いです。スキーマが属性を兄弟要素として期待する場合は、後処理で変換してください。
<?xml version="1.0"?> や <?xml-stylesheet?> のような処理命令を含むXMLを変換できますか?
はい、コンバーターは処理命令を完全にスキップします。XML宣言、スタイルシート参照、DOCTYPE宣言はJSON出力に一切現れません。たとえば `<?xml version="1.0" encoding="UTF-8"?><root><item>5</item></root>` は単純に `{"root":{"item":"5"}}` になります。これでAPIテスト用のペイロードがすっきりします。注意点がひとつ:宣言なしのXMLを貼り付けると、ツールはそれでも動作しますが、エンコーディングを推測する寛容なパーサーを使います。非UTF-8のファイルは、文字化けを避けるために先にUTF-8へ変換しておきましょう。
ファイルサイズの制限はありますか?50MBのXMLでも変換できますか?
厳密な制限はありませんが、ブラウザのメモリが上限です。50MBのファイルは変換中に約150〜200MBのRAMを消費します。DOMツリーとJSON文字列が同時にメモリ上に存在するためです。Chromeなら大抵のマシンで問題なく動きますが、2GB RAMの古いスマホではフリーズするかもしれません。30MBを超えるデータは、あらかじめXMLを分割することをお勧めします。小さなチャンクを貼り付けるか、ルート要素を一つずつ変換してください。タブがクラッシュしたら、未使用の名前空間を削除して入力サイズを減らしましょう。
このツールで変換したJSONはPythonやNode.jsでそのまま使えますか?
はい、標準的なJSON形式なので、Pythonのjson.loads()やNode.jsのJSON.parse()でそのまま読み込めます。ただし、XML属性は@attributesという特殊なキーに格納されるので、Python側で`data['root']['@attributes']`のようにアクセスする必要があります。Node.jsの場合は`data.root['@attributes']`です。テストで試すなら、`<user id="42">John</user>`を変換して、`id`が直接読めるか確認してみてください。実際には、APIに渡す前に属性をフラットな構造に変換する処理を挟むことが多いです。特にTypeScriptを使うなら、型定義を事前に用意しておくと楽ですよ。
変換時に社内の機密データが外部サーバーへ送信されることはありますか?
データがローカル環境の外に出ることは一切ありません。貼り付けたXMLはすべてブラウザ内のJavaScriptエンジンだけで処理されます。開発者ツールのネットワークタブを確認しても、変換時に外部へリクエストが飛ぶことはゼロです。セキュリティ要件が厳しい環境でも安心してご利用いただけます。
変換前にXMLの汚いインデントを整えることはできますか?
フォーマットされていないXMLでも変換は可能ですが、最終的なJSONの可読性が落ちます。内蔵の自動整形機能を使えば、空白を正規化し壊れたタグを即座に修正できます。バックエンド開発者はコードレビューの前にこのクリーンアップを行っています。生データを貼り付けて変換ボタンを押すだけで、きれいなツリー構造を確認できます。
XML→JSON変換の使い方
- XML文書を貼り付け
- 変換をクリック
- 構造化JSON出力を確認
- 結果をコピー