XML を JSON に変換
無料オンラインXML→JSON変換ツール。ブラウザのDOMParserでXMLを解析し、標準JSONオブジェクトに自動変換します。XML属性はフィールドに直接マッピング、同名の繰り返し要素は自動で配列にマージ、要素テキストはvalueフィールドに格納。JSON/YAMLデュアルフォーマット出力、prettyPrint整形、XMLエラー自動修復をサポート。すべてブラウザローカルで処理します。
関連おすすめ
XML→JSONについて:XMLデータを標準JSONオブジェクトに自動変換
XML→JSON変換は、XML(eXtensible Markup Language)形式のデータ(SOAPメッセージ、RSSフィード、設定ファイル)をJSON(JavaScript Object Notation)オブジェクトに変換するプロセスです。XMLはエンタープライズシステム、SOAP Webサービス、設定ファイル、Officeドキュメントの伝統的なデータ形式であり、JSONはモダンなWeb API、JavaScript、NoSQLデータベースの事実上の標準です。両形式にはそれぞれ長所があります:XMLは厳格な自己記述型で名前空間とスキーマ検証を広くサポート;JSONはシンプルで解析しやすくJavaScriptにネイティブ適合。開発現場ではXMLメッセージをJSONに変換してモダンなフロントエンドやマイクロサービスで使用する必要が頻繁にあり、本ツールはこのプロセスを自動化するために作られました。
本ツールのコアは、ブラウザ標準のDOMParserを使用してXMLを解析し、DOMツリーを自動走査してJSONオブジェクトを生成することです。DOMParserはブラウザに組み込まれたXMLパーサーで、W3C DOM標準に準拠し、XML名前空間、CDATA、コメント、属性などXML 1.0のすべての機能をサポートしています。DOMベース解析の利点は、ゼロ依存、高性能、標準準拠であることです。
変換マッピングルールは非常に直感的です:各XML要素はJSONオブジェクトに変換され、要素の属性はオブジェクトのフィールドに直接マッピング(@プレフィックスは使用せず、よくある混乱する命名規則を回避);要素のテキストコンテンツはvalueフィールドに格納;同名の繰り返し要素は自動的に配列にマージされます。例えば <bookstore><book id="1"><title>Great Gatsby</title></book><book id="2"><title>Brief History</title></book></bookstore> は {bookstore: {book: [{id: "1", title: {value: "Great Gatsby"}}, {id: "2", title: {value: "Brief History"}}]}} に変換されます。
属性マッピングでプレフィックスなしのダイレクトマッピングを採用しているのは、本ツールの重要な設計判断です。多くのXML変換ツールは属性とテキストを区別するために@attribute、#textなどの特殊なプレフィックスを使用しますが、これは正確ではあるものの生成されるJSON構造が扱いにくく、JavaScriptで直接使用しにくくなります。本ツールの属性ダイレクトマッピングにより、生成されるJSONは実際のビジネスデータモデルにより近くなり、開発者はTypeScript interfaceで対応する型を直接定義できます。
繰り返し要素の配列化はXML→JSON変換のもう一つの重要な設計です。XMLには配列の概念がネイティブに存在しないため、リストデータを表現するには繰り返し要素(複数の<item>など)を使用する必要があります。本ツールは同じ親要素の配下にある同名の繰り返しタグを自動検出して配列にマージし、JSONのリストセマンティクスに準拠させることで、データの損失や手動マージの必要性を回避しています。
デュアルフォーマット出力(JSON + YAML)は本ツールの差別化設計です。YAMLはもう一つの人気のあるデータシリアライゼーション形式で、Kubernetes、Docker Compose、Ansible、GitHub Actionsなどの設定シナリオで広く使用されています。ツールには簡易YAMLコンバーターが内蔵されており、標準の2スペースインデント、リスト接頭辞 -、キー値ペア : 区切りをサポート。JSON/YAML切り替えボタンで両形式間をリアルタイムに切り替えられます。
XMLエラー自動修復(tryFixXML)はツールのフォールトトレランスを向上させます。現実にはユーザーが入力するXMLにXML宣言(<?xml version="1.0"?>)が欠落していたり、自己閉鎖タグ(<br>、<img>など)がXMLスタイルの<br />ではなくHTMLスタイルの<br>で書かれていることがよくあります。ツールはXML宣言を自動追加し、自己閉鎖タグの / を補完することで、より多くの整形されていないXMLをDOMParserで正しく解析できるようにします。
XMLの整形と圧縮(formatXML/compressXML)はxml-formatterライブラリベースです。prettyPrintモードは2スペースインデントで改行を保持した読みやすいXMLを出力;圧縮モードは空白なしの単一行コンパクトXMLを出力しネットワーク転送に適しています。開発者はツールでXMLを直接圧縮してデータベースに格納でき、ストレージ容量を30〜50%節約できます。
リアルタイム自動変換はツールの実用的な機能です。XML入力後500msのデバウンスで自動的に変換がトリガーされ、6つのキーボードショートカット(macOS ⇧⌘+F/C/T/O/D/K)と組み合わせることで、マウスクリックなしで整形、圧縮、変換、アップロード、ダウンロード、クリアなどのよく使う操作を素早く完了できます。
純ブラウザローカル処理は本ツールのコアアーキテクチャです。XML解析、DOM走査、JSONシリアライゼーション、YAML変換はすべてブラウザのJavaScriptで実行され、DOMParserはブラウザ標準で提供され(XML解析ライブラリをバンドルする必要なし)、xml-formatterは軽量なnpmパッケージ(30KB未満)です。元のXMLデータがサーバーにアップロードされることはなく、機密性の高いSOAPメッセージ(注文情報、ユーザーデータを含むものなど)もローカルで安全に処理できます。
ユースケース
- 決済ゲートウェイ、ERP、CRMなどXMLレスポンスのみを返すレガシー企業APIと連携する際、XMLメッセージを素早くJSONに変換してモダンなフロントエンドやNode.jsバックエンドで使用。
- RSS/AtomフィードをJSONに解析し、Webフロントエンドでの表示、統合フィードリーダーへの集約、データベースへのインポートに活用。
- Spring、Tomcat、ApacheなどJavaアプリケーションのXML設定ファイル(web.xml、applicationContext.xml)を読み込み、JSONに変換してjqクエリや他ツールへのインポートに利用。
- SOAP 1.1/1.2プロトコルのXMLレスポンスをJSONに変換し、Node.jsのjsonwebtoken、lodashなどのライブラリと組み合わせて後続処理を実行。
- Mavenのpom.xml、Antのbuild.xmlなどビルドスクリプトをJSONに解析し、プロジェクトメタデータの可視化や依存関係分析に活用。
- RSSフィード、Sitemap XML、AtomフィードをJSON形式に変換してElasticsearch、MongoDBなどのモダンなデータベースに格納。
- 医療・金融業界のHL7、ISO 20022などXMLベースの業界標準データ形式と連携する際、XMLメッセージをJSONに変換してモダンなマイクロサービスで処理。
- Google Merchant Center、Sitemap.orgなどSEO関連のXMLファイル(sitemap.xml、robots.xml)をJSONに変換し、クローラーや分析ツールで利用。
使い方
- 左側の入力欄にXMLコンテンツを貼り付けるか、「アップロード」ボタンで.xml/.txtファイルを選択、または「サンプル」をクリックして内蔵のbookstoreサンプルを読み込みます。
- ツールが自動変換します(入力後500msデバウンス)。右側で変換後のJSONまたはYAMLを確認でき、CodeMirrorの構文ハイライトで読みやすく表示されます。
- 右側ツールバーのJSON/YAMLボタンで出力形式をリアルタイム切り替え。「整形」(⇧⌘+F)または「圧縮」(⇧⌘+C)ボタンでXML入力のフォーマットを調整することもできます。
- 「コピー」をクリックしてJSON/YAMLをクリップボードにコピーするか、「ダウンロード」で対応する拡張子のファイル(output.json / output.yaml / output.xml)として保存します。
- XML構文エラーを修復する必要がある場合は、エラー表示の横にある「修復」ボタン(またはツールバーの「サンプル」横のドロップダウンメニュー)をクリックすると、tryFixXMLがXML宣言の追加と自己閉鎖タグの補完を自動実行します。
- 変換後のJSONを対象のコード(TypeScript interface定義、APIレスポンス型など)に貼り付けるか、バックエンドサービスにインポートしてさらに処理します。
特徴
- インテリジェントDOMツリー解析:ブラウザ標準のDOMParserでXMLを解析し、ノードツリーを自動走査して標準JSONオブジェクトを生成。ゼロ依存。
- 属性ダイレクトマッピング:XML属性(id="1"、category="fiction"など)をJSONオブジェクトの通常フィールドに直接変換。@プレフィックス不要。
- 繰り返し要素の配列化:同名の繰り返しXML要素を自動でJSON配列({book: [{...}, {...}]})にマージ。一般的なデータ構造規約に準拠。
- テキストノード抽出:要素のテキストコンテンツをvalueフィールドに自動格納し、属性や子要素と並列に保持。
- デュアルフォーマット出力:JSON(prettyPrint 2スペースインデント)とYAML(2スペースインデント、リスト接頭辞 -)をワンクリックで切り替え。多様なユースケースに対応。
- XMLエラー自動修復:tryFixXML修復関数を内蔵し、欠落したXML宣言の自動追加、br/hr/imgなどの自己閉鎖タグを自動補完。
- XML整形・圧縮:xml-formatterライブラリを使用し、prettyPrintによる読みやすい出力とminifyによる圧縮出力(2スペースインデントまたは空白なし)に対応。
- リアルタイム自動変換:XML入力後500msのデバウンスで自動変換。手動クリック不要で出力がリアルタイムに同期更新。
- JSON/XMLデュアルハイライト:左側はCodeMirrorによるXML構文ハイライト、右側は形式に応じてJSONまたはYAMLハイライトに切り替え。
- フルキーボードショートカット:6つのよく使うショートカット(整形/圧縮/変換/アップロード/ダウンロード/クリア)でmacOSとWindows/Linux両対応。
- コピー&ダウンロード:クリップボードにワンクリックコピー、または標準のoutput.json/output.yaml/output.xmlファイルとしてダウンロード(現在の形式に応じて拡張子を自動選択)。
- 純ブラウザローカル処理:XML解析、DOM走査、JSONシリアライズはすべてブラウザのJavaScriptで実行。元データはアップロードされず、DOMParserはブラウザ標準で提供。
よくある質問
XMLをJSON形式に変換するにはどうすればいいですか?
XMLコンテンツを左側の入力欄に貼り付けると、ツールはブラウザ標準のDOMParserでXMLを解析し、DOMツリーを標準JSONオブジェクトに自動変換します。ルートノードは { [tagName]: {...} } でラップされ、属性は通常フィールドにマッピング(@プレフィックスなし)、要素テキストはvalueフィールドに格納、同名の繰り返し要素は自動で配列にマージされます。入力後500msで自動変換されるので、手動クリックは不要です。
XMLの属性とテキストノードはどのように変換されますか?
本ツールは直感的なマッピングパターンを採用しています:XML属性はJSONオブジェクトの通常フィールドに直接マッピング(例: <book id="1"> は {id: "1", ...} に変換)され、@プレフィックスは使用しません。要素のテキストコンテンツはvalueフィールドに格納されます(例: <title>Great Gatsby</title> は {value: "Great Gatsby"})。属性とテキストが共存する場合は、両方が同じオブジェクト内に並列に配置されます。
XML内の同名の繰り返し要素は自動的にJSON配列になりますか?
はい、なります。ツールは同じ親要素の配下にある同名の繰り返しタグ(例: <bookstore> 配下の3つの <book>)を自動検出し、JSON配列にマージします。例えば <bookstore><book>...</book><book>...</book></bookstore> は {bookstore: {book: [{...}, {...}]}} に変換されます。この規約はXML処理で最も一般的なデータ構造にマッチしています。
純粋なテキストノードはどのように処理されますか?
XML要素に属性がなくテキストコンテンツのみの場合、ツールはテキスト文字列を直接返します(例: <name>Alice</name> は "Alice" に変換)。要素に属性とテキストの両方がある場合は、属性とテキストが同じオブジェクト内に並列配置されます({attr: "...", value: "..."})。要素に子要素がある場合は、子要素がオブジェクトフィールドとなり、テキストコンテンツはvalueフィールドにマージされます。
閉じタグがないなど整形されていないXMLでも変換できますか?
はい、できます。ツールにはtryFixXML修復関数が組み込まれており、欠落したXML宣言(<?xml version="1.0" encoding="UTF-8"?>)を自動追加し、br、hr、imgなどの一般的な自己閉鎖タグに / を自動補完します。この設計により、古いシステムや整形されていないサードパーティ製APIに対する互換性が大幅に向上しています。
どのようなXMLファイル形式に対応していますか?
.xmlおよび.txtファイル(UTF-8エンコーディング)に対応しています。「アップロード」ボタンをクリックしてローカルファイルを選択すると、ブラウザ標準のFileReader APIで読み込まれ、サーバーにアップロードされることはありません。アップロード成功後、コンテンツは自動的に入力欄に反映され、自動変換がトリガーされます。
JSONとYAMLを同時に出力できますか?
はい、できます。ツールはJSONとYAMLのデュアルフォーマット出力に対応しています。右側ツールバーのJSON/YAML切り替えボタンをクリックすると、出力形式をリアルタイムで切り替えられます。JSON形式は2スペースのprettyPrint付き;YAML形式は標準の2スペースインデント、リスト接頭辞 -、キー値ペア : 区切りを採用しており、Kubernetes、Docker Compose、Ansibleなどの設定シナリオで直接使用できます。
ダウンロードされるファイル名は何ですか?
現在の出力形式に応じて拡張子が自動選択されます:JSON形式選択時はoutput.json、YAML形式選択時はoutput.yaml、入力のみで未変換の場合はoutput.xml(元の形式を保持)がダウンロードされます。すべてのファイルはUTF-8エンコーディングで、各形式のパーサーで直接読み取れます。
キーボードショートカットは何がありますか?
以下のショートカットに対応しています:macOSユーザーは ⇧⌘+F で整形、⇧⌘+C で圧縮、⇧⌘+T で変換、⇧⌘+O でアップロード、⇧⌘+D でダウンロード、⇧⌘+K でクリア。Windows/Linuxユーザーは ⌘ の代わりに Ctrl を使用してください。ワークフロー全体をカバーする6つのショートカットです。
XML名前空間(namespace)に対応していますか?
本ツールはDOMParserベースでXMLを解析するため、XML名前空間(xmlns)を標準でサポートしています。名前空間プレフィックスは要素名の一部としてJSONに保持され、例えば <svg:circle> は {svg:circle: {...}} になります。名前空間をまたぐ要素にアクセスする場合は、JSON解析側で名前空間プレフィックスを介して識別する必要があります。
CDATAセクションに対応していますか?
対応しています。CDATAセクション(<![CDATA[...]]>)内のコンテンツはDOMParserによって要素のtextContentに自動的にマージされ、ツールは通常のテキストノードと同様にJSONのvalueフィールドに抽出します。ただし、CDATAはXMLノード型であり文字列ではないため、元のCDATAと通常テキストはJSON出力では区別できません。
どのくらいのファイルサイズの入力に対応していますか?
理論上のハードリミットはなく、ブラウザのメモリ制限に依存します。一般的に1〜2MB以内のXMLであればスムーズに処理できます;それ以上の大きなファイルはDOMParserのメモリ使用量が大きいため処理が遅くなる場合があります。大きなSOAPメッセージやRSSフィードでカクつく場合は、事前にローカルのXMLエディタで簡素化または分割することを推奨します。
トラブルシューティング
JSON解析で「unclosed token」エラーが発生する?
原因は通常、XMLの閉じタグの欠落、属性引用符の不一致、特殊文字の未エスケープです。エラー表示の横の「修復」ボタンをクリックすると、tryFixXMLがXML宣言の追加と自己閉鎖タグの補完を自動実行します。それでも解析できない場合は、XML構造を手動で確認するか、ブラウザの開発者ツールでdocument.documentElement.outerHTMLを使用して解析結果を確認してください。
属性の順序がJSONとXMLで一致しない?
JSON標準は属性の順序を保証しません。ツールは要素属性のソースコード順にマッピングします。業務上の理由で順序が重要な場合は、解析後のJSONでLodashのtoPairsなどを使用して順序付き配列に再構築することを推奨します。ただし、ほとんどのJavaScriptエンジン(V8、SpiderMonkey)は挿入順に文字列キーを保持します。
同名要素が1つだけの場合は配列にならない、どうすればいい?
ツールは現在、同名の繰り返し要素を検出した場合のみ配列に変換します;同名要素が1つだけの場合は単一オブジェクトとして保持します。強制的に配列化したい場合(要素が1つでも)は、変換後にlodashのcastArrayでラップするか:[result].flat()、またはJSON Schemaで検証して配列を強制してください。
XML属性の特殊文字(<、&など)を保持するには?
DOMParserは属性値を自動的にアンエスケープし、ツールはアンエスケープ後の内容を保持します。元のXMLで<と書かれていた場合、変換後のJSONの値は<になります。これはXML標準の動作であり、ユーザーの期待に沿うものです。元のエスケープ形式を保持したい場合は、xml-formatterライブラリや自作のXMLトークナイザーをDOMParserの代わりに使用してください。
なぜYAML出力に型情報がないのですか?
YAML形式自体は型をサポートしていますが(12はnumber、trueはboolean、nullはnullなど)、本ツールの簡易YAMLコンバーターはすべての値を文字列としてシリアライズします。型を保持したい場合は、js-yamlなどの成熟したYAMLライブラリを使用するか、解析側でJSON Schema検証後に型を強制してください。
XML処理命令(PI)を含む入力はどう処理されますか?
DOMParserはデフォルトでXML処理命令(<?xml-stylesheet ...?>など)をdocument.firstChildのProcessingInstructionノードとして保持します。本ツールは現在Elementノードのみを走査するため、処理命令は無視されます。保持したい場合は、使用前に手動でdocument.firstChild.nodeValueを抽出してください。
ダウンロードした.jsonファイルは何で開けますか?
ダウンロードされるoutput.jsonはUTF-8エンコーディングの標準JSONファイルで、任意のテキストエディタ(VS Code、Sublime、Notepad++)または専門JSONツール(jq、JSDoc)で開けます。ブラウザにドラッグ&ドロップして整形された構造を確認することも可能です。JavaScript、Python、Node.js、Java、Goなどほぼすべてのプログラミング言語にJSONパーサーが標準搭載されています。
用語集
- XML (eXtensible Markup Language)
- 拡張可能マークアップ言語。W3Cにより1998年に策定。山カッコタグでデータ構造とコンテンツを記述し、名前空間、Schema検証、XSLT変換をサポート。SOAP Webサービス、Office Open XML、RSS、Atomなどの標準形式。
- JSON (JavaScript Object Notation)
- 軽量なデータ交換フォーマット。JavaScriptオブジェクト構文に基づくがプログラミング言語に非依存。オブジェクト({})、配列([])、文字列、数値、ブール、nullの6つの基本型をサポート。モダンなWeb API、NoSQLデータベース、JavaScriptエコシステムの事実上の標準。
- DOMParser
- ブラウザ標準API(W3C DOM標準)。XMLまたはHTML文字列をDOMツリーに解析する。すべてのモダンブラウザ(Chrome、Firefox、Safari、Edge)に標準搭載されており、サードパーティライブラリ不要。DOMツリーベースでXMLコンテンツの走査、クエリ、変更を簡単に行える。
- xml-formatter
- 軽量JavaScriptライブラリ(30KB未満)。XMLドキュメントの整形(prettyPrint)と圧縮(minify)に使用。カスタムインデント、改行コード、collapseContentなどのオプションをサポート。本ツールでXMLの整形と圧縮機能を提供するために使用。
- 属性マッピング(attribute mapping)
- XML要素の属性をJSONオブジェクトのフィールドに変換するマッピング方式。本ツールはダイレクトマッピングモードを採用:<book id="1"> を {id: "1"} に変換し、@プレフィックスを使用しない。よりクリーンなJSON構造を生成し、TypeScript interface定義がよりシンプルに。
- 繰り返し要素の配列化
- XML内の同名の繰り返し要素(複数の<item>など)を自動的にJSON配列にマージすること。XML→JSON変換の重要な設計判断であり、JSONのリストセマンティクスに準拠しデータ損失を回避。
- value フィールド
- 本ツールで規約しているXML要素のテキストコンテンツ用フィールド名。要素 <title>Great Gatsby</title> は {value: "Great Gatsby"} に変換される。要素に属性とテキストの両方がある場合、属性とvalueは同じオブジェクト内に並列配置される。
- YAML (YAML Ain't Markup Language)
- 人間に読みやすいデータシリアライゼーション形式。Kubernetes、Docker Compose、Ansible、GitHub Actionsなどの設定ファイルで広く使用されている。本ツールは簡易YAML出力をサポートし、2スペースインデント、リスト接頭辞 -、キー値ペア : 区切りに対応。
- SOAP (Simple Object Access Protocol)
- XMLベースのWebサービス通信プロトコル。SOAPメッセージはSOAP envelope(XML名前空間)でラップされ、headerとbody(XMLペイロード)を含む。本ツールはSOAPメッセージをJSONに解析してモダンなJavaScriptサービスで使用可能。
- RSS / Atom feed
- XMLベースのコンテンツ購読フォーマット。RSS 2.0は<rss><channel><item>構造でコンテンツを整理し、Atomは<feed><entry>構造を使用。本ツールはRSS/AtomをJSON配列に変換し、フロントエンドでの表示やデータベースへの集約を容易にする。
- XML 名前空間(namespace)
- xmlns属性により要素名の衝突を回避するメカニズム。形式は xmlns:prefix="uri"。DOMParserは名前空間を標準サポートしており、名前空間プレフィックスは要素名の一部としてJSONに保持される。
- CDATA セクション
- XML内の特殊構文 <![CDATA[...]]>。要素内に特殊文字(<、>、&など)を含むテキストをエスケープなしで埋め込むために使用。DOMParserはCDATAコンテンツを要素のtextContentにマージし、ツールは通常のテキストとして処理。
- tryFixXML
- 本ツールに組み込まれたXML修復関数。欠落したXML宣言(<?xml version="1.0" encoding="UTF-8"?>)を自動追加し、br、hr、imgなどの一般的な自己閉鎖タグに / を補完する。古いシステムや整形されていないサードパーティAPIのダーティデータを処理。
- prettyPrint
- xml-formatterライブラリの出力モード。有効にすると生成されるXMLに自動的にインデントと改行(2スペースインデントなど)が追加され可読性が高まる;無効にすると空白なしのコンパクト出力(minify)になる。
XML要素からJSONフィールドへのマッピングルール
本ツールのDOMParserベース変換におけるマッピングルール:
| XML構造 | XML例 | JSON出力 | マッピングルール |
|---|---|---|---|
element with attrs | <book id="1" category="fiction"/> | {"id": "1", "category": "fiction"} | 属性はオブジェクトフィールドに直接マッピング(@プレフィックスなし) |
element with text | <title>Great Gatsby</title> | {"value": "Great Gatsby"} | 要素のテキストコンテンツはvalueフィールドに格納 |
attrs + text | <price currency="USD">12.99</price> | {"currency": "USD", "value": "12.99"} | 属性とテキストは同じオブジェクト内に並列配置 |
no attrs, no text | <book id="1"/> | {"id": "1"} | 属性のみでvalueフィールドなし |
nested elements | <book><title>Gatsby</title></book> | {"title": {"value": "Gatsby"}} | 子要素はオブジェクトフィールドに変換 |
repeated elements | <books><book/><book/></books> | {"book": [{}, {}]} | 同名の繰り返し要素は自動で配列にマージ |
root element | <bookstore>...</bookstore> | {"bookstore": {...}} | ルートノードは { [tagName]: ... } でラップ |
namespace prefix | <svg:circle/> | {"svg:circle": {...}} | DOMParserが名前空間を標準サポート |
JSON vs YAML出力形式の比較
本ツールがサポートする2つの出力形式の特徴と適用シナリオ:
| 項目 | JSON | YAML | 説明 |
|---|---|---|---|
| 構文 | { } : [ ] で簡潔 | インデント + - リスト | JSONはより簡潔、YAMLはより可読性が高い |
| データ型 | ネイティブ number/bool/null | ネイティブ number/bool/null | 両方とも型を保持 |
| インデント | 2スペース | 2スペース | 本ツールは統一して2スペースを使用 |
| 配列 | [1, 2, 3] | - 1\n- 2\n- 3 | JSONは角カッコ、YAMLはダッシュ |
| コメント | 非サポート(標準) | # コメント | YAMLはコメントをサポート |
| 可読性 | 中程度(カッコが多い) | 高い(自然言語に近い) | YAMLの方が可読性に優れる |
| 利用シーン | REST API、フロント/バックエンド | K8s、Docker、CI/CD | WebにはJSON、設定にはYAML |
XMLとJSON形式の比較
両データ形式を各項目で比較し、XMLとJSONのどちらを選ぶべきか理解するのに役立ちます:
| 項目 | XML | JSON | 説明 |
|---|---|---|---|
| 構文 | < > </> で冗長 | { } : [ ] で簡潔 | JSONの構文はより簡潔、XMLタグは冗長だが可読性が高い |
| データ型 | すべて文字列 | ネイティブ number/bool/null | JSONは型を保持、XMLはスキーマで型検証が必要 |
| 配列 | 繰り返し要素 <i>1</i><i>2</i> | ネイティブ [1,2,3] | JSON配列は簡潔、XML配列は命名規則に依存 |
| コメント | <!-- コメント --> | 非サポート(標準) | XMLはコメントをサポート、JSON標準は非サポート |
| 名前空間 | xmlnsでサポート | なし | XMLは大規模ドキュメントの名前衝突を回避 |
| Schema検証 | XSD / DTD | JSON Schema | 両方とも成熟したスキーマ検証メカニズムを持つ |
| 解析パフォーマンス | やや遅い(タグのオーバーヘッド) | より速い(〜3-5倍) | JSON解析はシンプル、XML解析はより複雑 |
| 利用シーン | SOAP、企業、Office | REST API、フロント/バックエンド | モダンWebにはJSON、伝統的企業にはXML |
Privacy & Security
本XML→JSON変換ツールはすべての操作が完全にあなたのブラウザローカルで完結します:XML解析(ブラウザ標準のDOMParserベース)、DOMツリー走査、JSONシリアライゼーション、YAML変換はすべてブラウザのJavaScriptでクライアントサイド実行され、xml-formatterが唯一の外部依存(30KB未満のnpmパッケージ)です。元のXMLデータがいかなるサーバーにもアップロードされることはありません。ファイルアップロードはブラウザ標準のFileReader APIでメモリに直接読み込まれ、中間サービスを経由しません。Cookieによるトラッキングは使用せず、ユーザーの入力データや使用データを一切収集しません。ページを閉じるかリフレッシュすると、すべての入出力コンテンツはメモリから自動的にクリアされます。機密性の高い業務データ(注文情報、ユーザー認証情報、企業APIレスポンス)を含むXMLメッセージの処理に適しています。
Authoritative References
- W3CXML 1.0仕様 - W3C
- MDNDOMParser API - MDN
- W3CSOAP 1.2仕様 - W3C
- MDNJSON仕様 - MDN Web Docs
- RSS Advisory BoardRSS 2.0仕様
- GitHubxml-formatter GitHubリポジトリ
- JSON 圧縮
- CSV to JSON
- JSON から CSV
- JSON Diff
- JSON Escape / Unescape
- JSONフラット化
- JSON フォーマッター
- JSON 生成
- JSONPath オンラインクエリ
- JSON マージ
- JSON 修復
- JSON Schema バリデーター
- JSONソート
- JSON Stringify
- JSONをHTMLに変換
- JSONからJavaへ
- JSON から Markdown
- JSON を SQL に変換
- JSON から TOML へ変換
- JSONをTypeScriptに変換
- XML を JSON に変換
- JSONをXMLへ変換
- YAML を JSON に変換
- JSON → YAML 変換
- JSON から Go へ
- JSON から Rust
- JSON から Swift
- JSON から C#
- JSON から C++
- JSON を PHP に
- JSON から Python