XML <> JSON 変換
設定
インデント
XML
JSON
技術的な詳細
XML ↔ JSONコンバーターの仕組み
このツールでできること
XML ↔ JSONコンバーターは、XMLとJSON形式の間でデータを変換し、要素階層をオブジェクト構造へ変換します。このコンバーターは双方向変換に対応しており、xmlをjsonにオンラインで変換することも、jsonをxmlに変換することもできます。XML要素はJSONオブジェクトに、XML属性はオブジェクトのプロパティ(@_のプレフィックス付き)に、XMLのテキスト内容は文字列値にマッピングされます。名前空間とCDATAセクションについてはベストエフォートで処理し、可能な限り名前空間情報を保持します。XMLとJSONの両方の出力でインデントを設定でき、好みに合わせて結果を整形できます。
開発者によくある利用シーン
開発者は、異なる形式を使用するAPI、XMLを出力するレガシーシステム、JSONを利用するモダンアプリケーションを扱う際にXML JSONコンバーターを使用します。多くのSOAP APIはXMLを返しますが、モダンアプリケーションはJSONを好むため、xml→json変換は統合に不可欠です。xml jsonコンバーターは、システム間のデータ移行、APIレスポンスの変換、異なる形式の設定ファイルの扱いで有用です。変換前にXMLバリデーターでXMLを検証したり、XMLフォーマッターで整形したりするとよいでしょう。JSONに変換した後は、JSONフォーマッターで出力を整形・検証できます。このコンバーターは、統合問題のデバッグ、データ構造の比較、特定形式を要求するシステム向けのデータ準備に役立ちます。
データ形式、型、またはバリエーション
XML と JSON は根本的に構造が異なります。XML は属性を持つ要素ベースである一方、JSON はオブジェクトと配列による値ベースです。このコンバーターは標準的なマッピングを使用します。XML 要素は JSON オブジェクトに、XML 属性は @_(@_id のように)で始まるプロパティに、XML のテキスト内容は #text プロパティに格納される文字列値になります。同じ名前の XML 要素が繰り返される場合は JSON 配列に変換されます。空の XML 要素( <x/>)は空のオブジェクト( {"x": })になります。XML 名前空間は可能な限り JSON 構造内に保持されます。JSON から XML に変換する場合、このマッピングを逆に適用し、JSON オブジェクトから XML 要素を、@_ で始まるプロパティから属性を作成します。
変換例:
- 単一要素:
<person id="1">John</person>→{"person": {"@_id": "1", "#text": "John"}'} - 繰り返し要素:
<items><item id="1"/><item id="2"/></items>→{"items": {"item": [{"@_id": "1"}, {"@_id": "2"}]}'}
よくある落とし穴とエッジケース
よくある問題の 1 つは、XML の属性と要素の両方が JSON のプロパティに変換されるため、元に戻す際に曖昧さが生じる可能性があることです。もう 1 つの落とし穴は混在コンテンツの扱いです。テキストと子要素の両方を持つ XML 要素は、JSON では特別な扱いが必要になります。XML 名前空間は、JSON でプログラムからアクセスするには望ましくない複雑なプロパティ名を生むことがあります。CDATA セクションは保持されますが、JSON ではエスケープされた文字列として見える場合があります。処理命令やコメントは通常失われるか、完全なラウンドトリップにならない形で変換されます。XML 要素の順序は、JSON 配列(繰り返し要素)として表現される場合に保持されますが、JSON オブジェクトのプロパティ順はすべての実装で保証されず、依存すべきではありません。大きな XML ドキュメントを変換すると、結果の JSON 構造が深くネストして複雑になることがあります。開発者は、特に空要素、属性のみの要素、名前空間付き要素といったエッジケースで、必要なデータが変換で保持されているかを確認してください。
コードではなくこのツールを使うべき場面
このコンバーターは、素早い形式変換、単発の変換、または開発環境の外で作業する場合に使用してください。オンラインで xml を json に変換する、連携の問題をデバッグする、異なるシステム向けにデータを準備するといった用途に最適です。本番コードでは、データ処理パイプラインの一部として形式変換を扱える、アプリケーションに統合された XML/JSON 変換ライブラリを使用してください。XML と JSON のパースライブラリは、より良いエラーハンドリング、大きなドキュメント向けのストリーミング、変換オプションのより細かな制御を提供します。ブラウザツールはアドホックな変換や探索に優れ、コードベースのソリューションは自動化、検証、CI/CD パイプラインとの統合を提供します。エンタープライズ連携では、ネイティブライブラリの方が性能、スキーマ検証、XPath や XSLT のような複雑な XML 機能のサポートに優れています。