XML を JSON に 変換
XMLデータやファイルをブラウザ上で即座にJSON形式に変換します。カスタムインデントの指定や、複雑なネスト構造の解析に対応しています。
XMLファイルを選択
またはここにドラッグ&ドロップ
XMLデータやファイルをブラウザ上で即座にJSON形式に変換します。カスタムインデントの指定や、複雑なネスト構造の解析に対応しています。
またはここにドラッグ&ドロップ
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 に戻されます。
最新のアプリケーション コードのほとんどは、JSON を使用した方が快適です。 JavaScript は JSON をネイティブに解析し、Python の json モジュールは標準ライブラリに含まれており、他のほぼすべての言語は同等のファーストクラス JSON サポートを備えています。 XML 処理には、追加のライブラリをインポートし、さらにボイラープレートを作成する必要があります。多くの場合、受信 XML を処理前に JSON に変換することが、外部 XML フィードから内部データ構造への最も早いパスです。
ツールも JSON に依存します。 JSON ビューティファイアー、バリデーター、スキーマバリデーター、クエリ言語 (jq、JSONPath)、ビューアーが豊富にあります。 XML に相当するものは少なく、古いものも多くあります。 JSON で作業すると、より豊富なツールのエコシステムが利用可能になります。
XMLを貼り付けてJSONを取得します。
DOMParser は、ブラウザが XHTML ページに使用するものと同じ XML DOM を生成します。コンバーターはこの DOM を再帰的に実行します。要素ごとに JSON オブジェクトが作成されます。属性は @ の接頭辞が付いたキーになります (例: @id、@class)。要素の子要素は同じ構造に再帰されます。テキスト コンテンツが子と一緒に存在する場合、#text キーの下に存在します。
同じタグ名を持つ繰り返しの子要素は、JSON 配列に収集されます。指定された名前の 1 つの子がオブジェクト値として表示されます。複数の子はオブジェクトの配列として表示されます。この規則は実際にはうまく機能しますが、要素が 1 回出現するか複数回出現するかによって JSON の形状が異なることを意味します。これは、XML から JSON へのマッピングの既知の不完全性です。
名前空間は要素名の一部として保存されます (接頭辞:localName)。処理命令と CDATA セクションはテキスト コンテンツに変換されます。 XML 宣言と DOCTYPE は JSON 出力から削除されますが、データには影響しません。