JSON入力

XML出力

成功
警告

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

現代のサービスはJSONをやり取りしますが、企業インフラの広大な領域はいまだにXMLを話します――SOAP API、B2BのEDIフィード、銀行のミドルウェア、通信のOSS/BSSシステム、政府のデータ交換などです。連携先のシステムがXMLしか受け付けない場合、素早く変換する手段が必要です。JSON to XML コンバーターは、その対応付けをブラウザ内で決定論的に行います。各JSONキーはXML要素になり、ネストされたオブジェクトはネストされた要素になり、配列は各項目に対して同じタグを繰り返します。

変換は、W3CのXML 1.0仕様に文書化された規約に従います――整形式の要素、適切にエスケープされた内容、UTF-8宣言です。元の形式の背景については、JSON公式仕様RFC 8259が正式なリファレンスです。

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

  1. JSONを貼り付ける – JSONオブジェクトまたは配列を左パネルに入れます。ルートはオブジェクトか単一要素の配列でなければなりません。XMLは2つの兄弟ルート要素を表現できないためです。
  2. 変換を見る – 入力するそばからXMLが自動生成されます。右パネルはリアルタイムで更新され、変換ボタンは不要です。
  3. 要素名を確認 – 各JSONキーはXMLの要素名になります。キーに空白が含まれていたり数字で始まっていたりする場合は、出力が整形式を保つようにサニタイズされます。
  4. 配列を確認 – 配列の項目は親のタグ名を繰り返します(例:「sectors」配列は複数の<sectors>要素になります)。これは最も一般的なJSON-to-XMLの対応付け規約です。
  5. コピーまたはダウンロード – CopyでクリップボードにXMLを置くか、Downloadで連携にすぐ使える.xmlファイルとして保存します。

ヒント: ターゲットシステムが(要素ではなく)XML属性を必要とする場合は、JSONキーの前に@を付けます(例:"@id": "BS-4471")。コンバーターはこの規約を認識し、値を子要素ではなく属性として出力します。

基地局の設定例です。JSONキーはXMLの要素名になり、ネストされたオブジェクトはネストされた要素になり、配列の項目は同じタグを繰り返します。

JSON → XML 変換
base-station.jsonJSON
{
  "baseStation": {
    "id": "BS-4471",
    "vendor": "Ericsson",
    "sectors": [
      { "tac": 12001, "band": "n78" },
      { "tac": 12002, "band": "n28" }
    ]
  }
}
base-station.xmlXML
<?xml version="1.0" encoding="UTF-8"?>
<baseStation>
  <id>BS-4471</id>
  <vendor>Ericsson</vendor>
  <sectors>
    <tac>12001</tac>
    <band>n78</band>
  </sectors>
  <sectors>
    <tac>12002</tac>
    <band>n28</band>
  </sectors>
</baseStation>

よくある利用シーン

レガシーなSOAP APIとの連携

多くのキャリア課金、金融、政府のAPIはいまだにSOAPしか受け付けません――そしてSOAPエンベロープは根っからのXMLです。アプリケーションが内部ではJSONを生成するものの、こうしたサービスを呼び出す必要がある場合、このコンバーターが橋渡しになります。JSONを入れてXMLを取り出し、SOAPエンベロープで包めば完了です。

設定ファイル用のXML生成

多くの通信ネットワーク要素(HSS、MME、SGSN)やデータベースシステムは、いまだにXMLから設定を読み込みます。設定がJSON-firstのソース(たとえばgit管理のconfig-as-codeリポジトリ)にある場合は、ビルドステップの一環としてここで変換しましょう。出力構造を再確認する際には、MDNのXMLリファレンスが良き相棒になります。

RSS / Atom / Sitemap フィードの生成

RSS、Atom、sitemap.xmlはいずれも厳密なスキーマを持つXML形式です。コンテンツ管理システムがエントリをJSONで保存している場合は、各エントリをXMLに変換し、結果を連結して有効なフィードにできます。形式の詳細については、W3SchoolsのXMLチュートリアルが基本をカバーしています。

主な機能

  • リアルタイム変換 – 入力するそばから出力が更新されます。クリックする変換ボタンはありません。
  • 整形式のXML出力 – 標準の<?xml version="1.0" encoding="UTF-8"?>宣言を含み、テキスト内容の&<>を適切にエスケープします。
  • ネスト構造 – 任意の深さのJSONオブジェクトや配列を再帰的にたどり、対応するXML階層を生成します。
  • 属性対応 – 必要なときには、@key規約で子要素ではなく属性を出力します。
  • プライバシー最優先 – 変換はすべてブラウザ内で実行され、何もアップロードされません。

よくある質問

JSON配列はXMLでどう表現されますか?

各配列項目は、親キーの名前を使った別々の要素として出力されます。つまり"sectors": [{...}, {...}]<sectors>...</sectors>が2回になります。これは最も一般的な規約ですが唯一ではありません――ラッパー要素(<sectors><item>...</item></sectors>)を好むシステムもあります。ターゲットシステムが後者を必要とする場合は、先に配列をオブジェクトで包んでください。

XMLの要素名として無効なJSONキーはどうなりますか?

XMLの要素名には空白を含められず、数字や「xml」という文字で始めることもできず、使える文字も限られています。無効な文字はアンダースコアに置き換えられ、名前が数字で始まる場合はアンダースコアが先頭に付加されます。XML仕様が拠り所です――XML 1.0のName定義をご覧ください。

null値はどう変換されますか?

XMLには組み込みのnullがありません。JSONのnullは空の自己終了要素(<field/>)として出力され、値がないことが保持されます。ターゲットシステムがXML Schemaのxsi:nil="true"規約を必要とする場合は、出力を後処理する必要があります。

ツールは名前空間を扱いますか?

自動的には扱いません――XMLの名前空間には明示的なプレフィックス宣言(xmlns:foo="...")が必要ですが、入力JSONにはその概念がありません。名前空間に対応した出力にするには、変換後にルート要素へ手動でxmlns属性を追加し、オンラインのXSDバリデーターのようなツールでスキーマに照らして検証してください。

データは安全ですか?

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

関連ツール

  • JSON Formatter – 変換前にJSONを整形して、対応付けの問題を見つけやすくします。
  • JSON Validator – 変換に取りかかる前に、入力が有効なJSONであることを確認します。
  • JSON to CSV – ターゲットシステムがXMLではなくCSVを話す場合に。
  • JSON to Table – 変換前にJSONを表としてプレビューし、構造を確認します。

役立つリソース

  • W3C XML 1.0 Specification – 整形式のXMLとは何かを定める権威ある文法。
  • RFC 8259 – 変換の元形式である、IETFのJSON仕様。
  • JSON.org – 鉄道図式の文法ダイアグラム付きの、オリジナルのJSON仕様。
  • MDN XML Reference – Web標準により馴染みのある開発者向けの、わかりやすいXMLドキュメント。
  • W3Schools XML Tutorial – XPathやXSDの基礎を含む、ステップバイステップのXML入門。
  • Stack Overflow JSON+XML – JSON-to-XML対応付けのエッジケースに関するコミュニティの回答。