JSON to XML
JSONデータをXML形式に変換し、XMLベースのシステムとの連携に役立てます
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 コンバーターの使い方
- JSONを貼り付ける – JSONオブジェクトまたは配列を左パネルに入れます。ルートはオブジェクトか単一要素の配列でなければなりません。XMLは2つの兄弟ルート要素を表現できないためです。
- 変換を見る – 入力するそばからXMLが自動生成されます。右パネルはリアルタイムで更新され、変換ボタンは不要です。
- 要素名を確認 – 各JSONキーはXMLの要素名になります。キーに空白が含まれていたり数字で始まっていたりする場合は、出力が整形式を保つようにサニタイズされます。
- 配列を確認 – 配列の項目は親のタグ名を繰り返します(例:「sectors」配列は複数の<sectors>要素になります)。これは最も一般的なJSON-to-XMLの対応付け規約です。
- コピーまたはダウンロード – CopyでクリップボードにXMLを置くか、Downloadで連携にすぐ使える.xmlファイルとして保存します。
ヒント: ターゲットシステムが(要素ではなく)XML属性を必要とする場合は、JSONキーの前に@を付けます(例:"@id": "BS-4471")。コンバーターはこの規約を認識し、値を子要素ではなく属性として出力します。
例
基地局の設定例です。JSONキーはXMLの要素名になり、ネストされたオブジェクトはネストされた要素になり、配列の項目は同じタグを繰り返します。
{
"baseStation": {
"id": "BS-4471",
"vendor": "Ericsson",
"sectors": [
{ "tac": 12001, "band": "n78" },
{ "tac": 12002, "band": "n28" }
]
}
}<?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対応付けのエッジケースに関するコミュニティの回答。