メインコンテンツへスキップ

XML・JSON 相互変換

XMLとJSONを双方向でリアルタイム変換できる無料オンラインツール。属性(@属性名)・テキストノード(#text)・CDATA・ネスト・同名要素の自動配列化に対応。SOAPレスポンス・RSSフィード・Officeドキュメントの中身確認、レガシーAPIのモダン化に便利、ブラウザ完結で外部送信なし。

XMLとJSONを双方向で変換するツールです。属性・テキストノード・CDATA・同名要素の配列化に対応、レガシーAPI連携やRSSフィードの処理に便利です。

XML・JSON 相互変換
インデント
XMLを入力してください...

💡 XML属性は @属性名、テキストノードは #text として変換されます。同名の子要素は自動的に配列になります。

// XML・JSON 相互変換の機能と特徴

属性は「@」付きで表現されます

XMLの「属性」(`<book category="fiction">` の category 部分)は、JSON では `@` を頭に付けたキーになります。例えば `<book category="fiction">` は `{"@category": "fiction"}` に変換されます。JSON→XML の逆変換でも、`@` で始まるキーは自動的に属性として扱われます。この記法は多くの XML/JSON 相互変換ツールで採用されている標準的な方式です。

同じ名前のタグは配列になります

XMLで `<item>A</item><item>B</item>` のように同じ名前の要素が並ぶ場合、JSONでは自動的に配列 `{"item": ["A", "B"]}` に変換されます。RSSフィード・SOAPレスポンス・Officeドキュメントなど、同じタグを繰り返す構造が多いXMLでもきれいに扱えます。

どんな場面で役に立つか

レガシーシステムのXML APIをモダンなフロントエンドで扱いたい、RSS/Atomフィードを解析したい、OpenAPI仕様書のサンプルデータを移行したい、SOAP↔REST間のデータ変換をしたい、といった場面で活躍します。逆方向(JSON→XML)は、モダンAPIから来たデータをレガシーシステムに渡す時に便利です。

関連するデータ形式変換

同じくJSON周りの相互変換として YAML⇔JSON変換TOML⇔JSON変換CSV⇔JSON変換TSV⇔JSON変換 を用意しています。JSONを整形・確認したい場合は JSON整形ツール が便利です。

// XML・JSON 相互変換に関するよくある質問

XMLってどんな場面で使うんですか?
レガシーAPI(SOAP等)のレスポンス、RSS/Atomフィード、SVG画像の中身、Officeドキュメント(.docx や .xlsx は中身がXML)、Androidアプリのマニフェスト(AndroidManifest.xml)、多くの企業システムの設定ファイル、といった場面で使われています。近年はJSONに押されていますが、金融・行政・出版など「歴史のある業界」ではまだ現役の重要な形式です。
XMLの属性はどうやってJSONに変換されますか?
属性名の頭に `@` を付けたキーとしてJSON内に表現されます。例えば `<book category="fiction" year="2024">` は `{"@category": "fiction", "@year": "2024"}` になります。逆にJSON→XML変換では、`@` で始まるキーが自動的に属性として書き出されます。この方式は業界標準的な変換ルールです。
同じ名前のタグが複数あるとどうなりますか?
自動的にJSON配列に変換されます。例えば `<items><item>A</item><item>B</item><item>C</item></items>` は `{"items": {"item": ["A","B","C"]}}` になります。RSSフィードやリスト型データが自然に配列化されるので、JavaScript や Python から扱いやすい形になります。
CDATAセクションに対応していますか?
はい、`<![CDATA[...]]>` で囲まれた部分はテキストとして正しく処理されます。HTMLタグやスクリプトコードを含む XML でも、CDATA 内の中身をそのままJSONの文字列として取り出せます。エスケープされた特殊文字も自動でデコードされます。
テキストと属性が混在する要素はどうなりますか?
`<book category="fiction">はじめての物語</book>` のように属性とテキストが両方ある要素は、JSONでは `{"@category": "fiction", "#text": "はじめての物語"}` のように `#text` キーでテキスト部分を表現します。JSON→XML逆変換でも `#text` キーは自動的にテキストノードとして復元されます。
JSONからXMLに変換もできますか?
はい、モード切替で「JSON → XML」に切り替えるだけで可能です。オブジェクトの各キーがXMLのタグに、`@` 付きキーが属性に、`#text` キーがテキストに変換されます。配列は同名タグの繰り返しになります。生成されたXMLはCOPYボタンでコピーして、そのままファイル保存や送信に使えます。
名前空間(namespace)付きのXMLは扱えますか?
はい、名前空間プレフィックス(`ns:element` のような形式)を保持したままキー名として扱います。例えば `<soap:Envelope>` は `{"soap:Envelope": {...}}` としてJSONに変換されます。ただし完全なXML Namespaces仕様(`xmlns` 宣言の追跡等)には対応していないため、単純な名前空間付きXMLの構造保持用途を想定しています。
XMLの宣言(`<?xml ... ?>`)はどうなりますか?
XML宣言(`<?xml version="1.0" encoding="UTF-8"?>`)・DOCTYPE宣言・コメント(`<!-- -->`)は変換時に自動的にスキップされます。JSON側にはデータ本体だけが表現されます。JSON→XML変換で出力するXMLも、シンプルにルート要素から書き出します。
RSSフィードやSVGも扱えますか?
RSSフィードは典型的なXML構造なのでそのまま変換できます。SVGは技術的にはXMLですが、非常に大きな画像だとブラウザが重くなるので、小さな図(アイコン等)向きです。大きなSVGを最適化したい場合は SVGビューアー・最適化 が向いています。
データはサーバーに送信されますか?
いいえ、すべての処理はブラウザ内のJavaScriptで完結します。入力データがサーバーに送信されることはありません。社内システムのSOAPレスポンス・非公開のRSSフィード・機密文書のXMLも安心して変換できます。

// XML・JSON 相互変換の使い方

  1. 変換方向を選ぶ

    「XML → JSON」または「JSON → XML」を選択します。既存のXMLをJavaScriptで扱いたいなら前者、モダンなJSONをレガシーシステム向けに変換したいなら後者を選んでください。

  2. データを貼り付け

    入力欄にXMLまたはJSONのテキストを貼り付けます。「サンプル」ボタンで属性・配列・CDATAを含む典型的な例を試すこともできます。

  3. 結果を確認・コピー

    変換結果がリアルタイムで表示されます。COPYボタンでクリップボードに保存、SWAPボタンで入出力を入れ替えて逆変換の確認もできます。インデント幅は2sp/4spから選択可能です。

カテゴリ データ形式