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

XML・JSON 相互変換

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

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

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

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

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

XML属性が「@」付きのキーになる理由

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でもきれいに扱えます。

RSS・SOAP・レガシーAPIを扱う場面

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

YAML・TOML・CSVの変換もしたいとき

同じく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ビューアー・最適化 が向いています。

XMLやJSONの内容はサーバーに送信されますか?

いいえ、すべての処理はブラウザ内のJavaScriptで完結します。入力データがサーバーに送信されることはありません。社内システムのSOAPレスポンス・非公開のRSSフィード・機密文書のXMLも安心して変換できます。

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

  1. XML→JSONかJSON→XMLを選ぶ

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

  2. XMLまたはJSONを貼り付け

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

  3. 変換結果をコピー

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

カテゴリ データ形式