XML入力

JSON出力

成功
警告

XML to JSON コンバーターとは?

SOAPレスポンスや、ベンダーの製品フィード、あるいはXMLの古い設定ファイルを渡され、それをJavaScriptアプリに取り込む必要に迫られたことがあれば、その苦労はおわかりでしょう。XMLは冗長で属性が多く、コードでたどるのが面倒です。一方、JSONは多くのモダンなAPI、NoSQLストア、フロントエンドのフレームワークが実際に求める形式です。このコンバーターはXMLをブラウザ内で読み取り、各要素をJSONのプロパティに、繰り返されるタグの集合を配列に、各属性をきちんと整理された@attributesオブジェクトに変換します――結果はそのままコードに貼り付けられます。

解析はブラウザ組み込みのDOMParserが行います。これはW3CがXML仕様で説明しているエンジンそのものです。出力されるJSONはRFC 8259が定める構造に従うため、JSONが受け入れられる場所ならどこでも有効です。データは一切端末から出ません――アップロードも、サーバーとのやり取りも、ログ記録もありません。

XML to JSON コンバーターの使い方

  1. XMLを貼り付ける整形式のXMLドキュメントを左パネルに入れます。単一のルート要素が必要です――これはどのXMLパーサーも課すルールです。
  2. 変換を見る入力するそばからJSONが右パネルに現れます。変換ボタンはなく、短いデバウンスにより1キーごとの再解析を避けて軽快に動きます。
  3. 属性を確認要素の属性は@attributesキーの下にまとめられ、子要素名と決して衝突しません。テキストと要素が混在するノードはテキストを#textの下に保持します。
  4. 繰り返しタグを確認同じ親の下に同名タグが複数回現れる場合(複数の<subscriber>要素など)、自動的にJSON配列になります。
  5. コピーまたはダウンロードCopyでJSONを取得するか、Downloadでアプリやテスト用の.jsonファイルとして保存します。

ヒント: XMLが名前空間(xmlns:プレフィックス)を使う場合、プレフィックス付きのタグ名はそのままJSONキーに残ります(例:soap:Body)。ほとんどのJSON利用側は問題ありませんが、コロンを含むキーが下流のパーサーで引っかかる場合は、変換後にリネームしてください。

短い加入者一覧です。繰り返される<subscriber>要素はJSON配列になり、id属性は@attributesの下に入り、各リーフ要素は文字列値になります。

XML → JSON 変換
subscribers.xmlXML
<?xml version="1.0" encoding="UTF-8"?>
<subscribers>
  <subscriber id="1">
    <subscriberId>SUB-1001</subscriberId>
    <msisdn>447700900142</msisdn>
    <plan>Unlimited 5G</plan>
    <roaming>true</roaming>
  </subscriber>
</subscribers>
subscribers.jsonJSON
{
  "subscriber": {
    "@attributes": { "id": "1" },
    "subscriberId": "SUB-1001",
    "msisdn": "447700900142",
    "plan": "Unlimited 5G",
    "roaming": "true"
  }
}

よくある利用シーン

レガシーなSOAPやB2Bフィードの取り込み

キャリアの課金ゲートウェイ、銀行のミドルウェア、政府のデータ交換は、いまだにXMLで応答します――多くはSOAPエンベロープに包まれています。サービスがJSON-firstなら、レスポンスを変換するのが使えるデータを得る最速の方法です。本文を入れてJSONを取り出し、コードがすでに期待している形でフィールドにアクセスできます。エンベロープ構造については、W3CのSOAP勧告が参考になります。

XML設定のJSONへの移行

多くの通信ネットワーク要素(HSS、MME、SGSN)や古いJavaアプリは、設定をXMLから読み込みます。プロジェクトをJSONベースの設定へ移行する場合(または2つの設定を比較しやすくしたい場合)は、まずここでXMLを変換しましょう。特定の構造がどう対応付くかを再確認する際には、MDNのXML入門が役立ちます。

RSS・Atom・サイトマップをデータに変換

RSSやAtomフィード、sitemap.xmlファイルはいずれもXMLです。JSONに変換すれば、JavaScriptでエントリをループしたり、ドキュメントデータベースに保存したり、ダッシュボードに流したりするのが簡単になります。フィード形式については、W3SchoolsのXMLチュートリアルが扱っています。

主な機能

  • リアルタイム変換 – 入力するそばからJSONが更新されます。クリックするボタンはありません。
  • 属性の処理 – 属性は@attributesの下にまとめられ、子要素と決して衝突しません。
  • 自動的な配列化 – 繰り返される兄弟タグはJSON配列にまとまり、ほとんどのXML→JSON変換ツールの挙動に合致します。
  • 混在コンテンツ対応 – テキストと子タグの両方を持つ要素は、テキストを#textキーの下に保持します。
  • プライバシー最優先 – 解析はすべてDOMParserでブラウザ内で実行され、何もアップロードされません。

よくある質問

XML属性はJSONでどう表現されますか?

各要素の属性は、その要素上の@attributesオブジェクトにまとめられます。つまり<subscriber id="1">{ "@attributes": { "id": "1" } }になります。これにより、属性名が同名の子要素と衝突するのを防ぎます。

繰り返し要素はどうなりますか?

最初の出現は単一のオブジェクトを作ります。同名の2つ目の兄弟タグが現れた瞬間に値は配列へ昇格し、各出現がそこに追加されます。だからこそ2つの<subscriber>タグはJSON配列になり、単独のものはオブジェクトのまま残ります――下流のコードが配列を期待している場合は覚えておくべき点です。

値は数値や真偽値として型付けされますか?

いいえ。XMLには型情報がないため、各リーフ値は文字列として渡されます(45.2ではなく"45.2")。本物の数値や真偽値が必要なら、意図した型がわかっている変換後のコード側でキャストしてください。

XMLの名前空間を扱いますか?

はい。プレフィックス付きのタグ名(soap:Bodyns:Item)がそのままJSONキーに保持されるという意味で扱います。コンバーターは名前空間URIを解決したりプレフィックスを取り除いたりはしません――出力が予測可能になるよう、文字どおりの名前を保ちます。

データは安全ですか?

はい。変換はブラウザのDOMParserを使い、すべてクライアントサイドで実行されます。入力XMLも出力JSONも、ネットワークに送信されたり、キャッシュされたり、ログに記録されたりすることはありません。

関連ツール

  • JSON to XML – 逆方向に――XML専用システム向けにJSONをXMLへ戻します。
  • JSON Formatter – 変換後のJSONを確定する前に整えます。
  • JSON Validator – アプリに組み込む前に、出力が有効なJSONであることを確認します。
  • JSON to Table – 変換後のJSONを表としてプレビューし、構造を確認します。

役立つリソース

  • W3C XML – XML仕様と関連標準の公式拠点。
  • MDN DOMParser – このコンバーターを支えるブラウザAPIのドキュメント。
  • RFC 8259 – IETFのJSON仕様――変換のターゲット形式。
  • JSON.org – 鉄道図式の文法ダイアグラム付きの、オリジナルのJSON仕様。
  • W3Schools XML Tutorial – XPathやXSDの基礎を含む、ステップバイステップのXML入門。
  • Stack Overflow XML – XMLの解析やマッピングのエッジケースに関するコミュニティの回答。