完全無料

XML を JSON に 変換

XMLデータやファイルをブラウザ上で即座にJSON形式に変換します。カスタムインデントの指定や、複雑なネスト構造の解析に対応しています。

XMLファイルを選択

またはここにドラッグ&ドロップ

または

このツールについて

XML と JSON はどちらもデータ交換形式ですが、Web の異なる時代に由来しています。 1998 年に標準化された XML は、属性、名前空間、スキーマ検証を備えた自己記述型マークアップ形式として設計されました。 JSON は、JavaScript ランタイムと最新の API に適した軽量形式として 2000 年代初頭に登場しました。新しい Web API のほとんどは JSON を使用します。多くの古いシステム (SOAP サービス、RSS フィード、構成ファイル、エンタープライズ統合) は依然として XML を生成します。それらの間の変換は、最新の開発において最も一般的な相互運用タスクの 1 つです。

2 つの形式の表現力が異なるため、変換は完全にロスレスではありません。 XML には属性があり (JSON にはネイティブにありません)、テキスト コンテンツと要素名が区別され、混合コンテンツ (テキスト要素と子要素の両方を含む要素) がサポートされます。 JSON の単純なオブジェクト/配列モデルはこれらの機能を直接表現できないため、コンバーターは規則を適用します。属性は @ 接頭辞付きキーになり、テキスト コンテンツは #text キーになり、などです。

このコンバータは、ブラウザの組み込み DOMParser を使用して XML を解析し、結果の DOM ツリーをたどって JSON を生成します。兄弟と同じタグ名を持つ要素は配列に収集されます。属性は特別なキーに入ります。名前空間と処理命令は、存在する場合には保持されます。その結果、人間が判読できる JSON が生成され、合理的に XML に戻されます。

XML を JSON に変換する理由

最新のアプリケーション コードのほとんどは、JSON を使用した方が快適です。 JavaScript は JSON をネイティブに解析し、Python の json モジュールは標準ライブラリに含まれており、他のほぼすべての言語は同等のファーストクラス JSON サポートを備えています。 XML 処理には、追加のライブラリをインポートし、さらにボイラープレートを作成する必要があります。多くの場合、受信 XML を処理前に JSON に変換することが、外部 XML フィードから内部データ構造への最も早いパスです。

ツールも JSON に依存します。 JSON ビューティファイアー、バリデーター、スキーマバリデーター、クエリ言語 (jq、JSONPath)、ビューアーが豊富にあります。 XML に相当するものは少なく、古いものも多くあります。 JSON で作業すると、より豊富なツールのエコシステムが利用可能になります。

使い方

XMLを貼り付けてJSONを取得します。

  1. XML を貼り付けるかアップロードします: XML テキストを入力領域に貼り付けるか、ファイルをドロップします。 XML は整形式である必要があります。不正な形式の XML は、推測ではなく解析エラーを生成します。
  2. 変換する: DOMParser は DOM を構築し、コンバーターは各要素を調べ、必要に応じて属性キー (@attr) とテキスト コンテンツ キー (#text) を使用して JSON を生成します。同じ名前の兄弟要素は配列になります。
  3. 構造を見直す: JSON を調べて、属性、テキスト、およびネストが期待どおりにマップされていることを確認します。使用されている規則 (属性の @ など) は出力に表示されます。
  4. ダウンロードまたはコピー: .json として保存するか、クリップボードにコピーします。

一般的な使用例

技術的な詳細

DOMParser は、ブラウザが XHTML ページに使用するものと同じ XML DOM を生成します。コンバーターはこの DOM を再帰的に実行します。要素ごとに JSON オブジェクトが作成されます。属性は @ の接頭辞が付いたキーになります (例: @id、@class)。要素の子要素は同じ構造に再帰されます。テキスト コンテンツが子と一緒に存在する場合、#text キーの下に存在します。

同じタグ名を持つ繰り返しの子要素は、JSON 配列に収集されます。指定された名前の 1 つの子がオブジェクト値として表示されます。複数の子はオブジェクトの配列として表示されます。この規則は実際にはうまく機能しますが、要素が 1 回出現するか複数回出現するかによって JSON の形状が異なることを意味します。これは、XML から JSON へのマッピングの既知の不完全性です。

名前空間は要素名の一部として保存されます (接頭辞:localName)。処理命令と CDATA セクションはテキスト コンテンツに変換されます。 XML 宣言と DOCTYPE は JSON 出力から削除されますが、データには影響しません。

ベストプラクティス

よくある質問

XML を JSON に変換すると内容は変わりますか?
内容は可能な限り正確に保存されます。ただし、一部の形式固有の機能には直接同等の機能がない場合があるため、形式に若干の違いが発生する可能性があります。
データを JSON 形式に変換するのはなぜですか?
JSON は、Web API および JavaScript アプリケーションの標準データ形式です。人間が判読可能で、プログラミング言語で広くサポートされており、構文は XML よりも単純です。
コンバーターはネストされた XML 構造または複雑な XML 構造を処理しますか?
はい。このツールは、ネストされたオブジェクト、配列、およびすべての標準 XML データ型を正しく解析し、JSON 出力内の完全なデータ構造を保持します。
この変換は安全かつ非公開ですか?
はい。すべての処理はブラウザ内でローカルに行われます。データがデバイスから離れることはありません。サーバーへのアップロード、クラウド処理、データ収集はありません。
CDATA セクションは処理されますか?
はい。 CDATA コンテンツは、JSON 出力のプレーン テキストに変換されます。 CDATA ラッピング自体は保存されませんが、コンテンツは保存されます。
私のデータはサーバーにアップロードされていますか?
いいえ。DOMParser はブラウザで実行されます。変換は完全にデバイス上で行われます。
JSON は XML に往復しますか?
逆の規則を使用する場合ははい (JSON to XML ツールは同じ @attr および #text ルールに従います)。ラウンドトリップでは、一般的な XML の構造が保持されます。一部の特殊なケース (混合コンテンツの順序、処理命令) は完全には生き残れない可能性があります。
最大入力サイズはどれくらいですか?
最大50MB。 DOMParser はブラウザによってメモリの制限を受けます。非常に大きな XML ファイルは速度が低下したり、解析に失敗したりする可能性があります。