JSON→XML変換
JSONデータを正しいXMLに変換します。
ブラウザ内で動作します。入力した内容はどこにも送信されません。
- ルート要素名を指定可能
- 常に整形式
- アップロードなし
JSONをXMLに変換する方法
- JSONを貼り付けるかアップロードします。
- ルート要素の名前を入力します。
- XMLをコピーまたはダウンロードします。
例:JSONを入力、XMLを出力
| JSON | XML |
|---|---|
| {"name":"Sam"} | <root><name>Sam</name></root> |
| {"@_id":"5","#text":"Widget"} | <root id="5">Widget</root> |
| {"tag":["a","b"]} | <root><tag>a</tag><tag>b</tag></root> |
JSONのキーがタグ名になる仕組み
- スペースなど、XMLが名前に許可しない文字は_に置き換えられるため、"first name"はfirst_nameになります。
- XMLの名前は数字で始められないため、数字で始まるキーには先頭に_が追加されます。
- 名前変更後のキーと衝突する場合は番号が付加されるため、2つ目のfirst_nameはfirst_name_2になります。
JSON→XMLが役立つ場面
- XMLしか受け付けない古いシステムやAPIにデータを渡す。
- JSONデータソースから、RSS形式のような小さなフィードを作る。
- JSONペイロードがSOAPやレガシーなXMLリクエストボディとしてどう見えるかを確認する。
知っておくべき制限
- XMLにはnullそのものを意味するものがないため、JSONのnullは空の要素になります。
- XMLのタグ名は大文字・小文字を区別するため、Nameとnameのように大文字・小文字だけが異なるキーは別々のタグになります。
- 数値や真偽値はXML内ではプレーンテキストとして書かれます。元の型に戻すには、読み取る側がそれを解析する必要があります。
JSON→XMLのFAQ
配列はXMLでどう書かれますか?
配列の各項目は、そのキー名を持つ繰り返し要素になります。トップレベルの配列は、ルートの下でitem要素として包まれます。
属性を作るには?
"@_id": 5のように@_で始まるキーにすると、親要素の属性になります。これはXML→JSON変換ツールの出力形式と一致します。
キーが有効なXMLタグ名でない場合は?
スペースなど、XMLが名前に許可しない文字は_に置き換えられ、数字で始まる名前には先頭に_が追加されます。そのため"first name"はfirst_nameになります。
XML→JSONで変換したファイルを、また元に戻せますか?
はい。属性をオンにしてXML→JSON変換ツールで生成されたJSONは、@_キーや#text値も含めて、ここで対応するXMLに変換し直せます。
タグのリストのような、単純な値のJSON配列はどうなりますか?
各値がその配列のキー名を持つ繰り返し要素になります。例えばtagというキーの["a","b"]という配列は<tag>a</tag><tag>b</tag>になります。
出力にXML宣言は含まれますか?
はい。すべての結果は<?xml version="1.0" encoding="UTF-8"?>から始まり、独立した行になります。
テキスト内の<や&のような特殊文字はエスケープされますか?
はい。テキストや属性値の中でXML構文を壊してしまう文字は自動的にエスケープされるため、結果は常に問題なく解析し直せます。
配列の中のオブジェクトを、さらに別のオブジェクトの中にネストできますか?
はい。オブジェクトと配列がどんな深さ、組み合わせでネストしていても変換され、各階層がそれぞれのネストした要素の集まりになります。