JSON を XML に変換する方法
- JSON を貼り付けるか、
.jsonファイルを開きます。入力に合わせて横に XML が表示されます。 - ルート要素の名前(空欄にするとトップレベルの単一キーを使用)、属性のプレフィックス、インデントを設定します。
- XML をコピーするか、
.xmlファイルとしてダウンロードします。
JSON から XML への変換ルール
| JSON | XML |
|---|---|
{"name": "Ada"} | <name>Ada</name> |
{"@id": "7"} | 親要素の属性 id="7" |
{"#text": "Hello"} | 親要素のテキスト内容 |
{"tag": ["a", "b"]} | <tag>a</tag><tag>b</tag> |
{"note": null} | <note/> |
{"2nd key": 1} | <_2nd_key>1</_2nd_key>(無効な名前は修正) |
トップレベルの配列 [1, 2] | <root><item>1</item><item>2</item></root> |
テキスト中の &、<、> | &、<、> |
JSON と XML の違い
JSON には配列、数値、真偽値、null がありますが、XML には要素、属性、テキストしかないため、型は保持されません。42 も "42" も、どちらもテキストの 42 になります。一方、XML には JSON にない属性、名前空間、混在コンテンツがあります。後で XML を JSON に戻す予定がある場合は、ここで使っている一般的な規則(属性には @、テキスト内容には #text)を守っておくと、ほとんどの変換ツールで正しく扱えます。
よくある質問
JSON の配列は XML でどうなりますか?
各要素は配列のキー名を持つ要素になります。たとえば {"book": [ … ]} は複数の <book> 要素になります。トップレベルの配列の要素は、ルート内の <item> 要素になります。
JSON から XML の属性を作るには?
キーの先頭に @ を付けます。{"user": {"@id": 7, "name": "Ada"}} は <user id="7"><name>Ada</name></user> になります。プレフィックスはオプションで変更できます。
XML の名前として無効なキーはどうなりますか?
スペースなど XML の名前に使えない文字はアンダースコアに置き換えられ、数字や「xml」で始まる名前には先頭にアンダースコアが付きます。たとえば "2nd key" は <_2nd_key> になります。
生成された XML は有効ですか?
はい。特殊文字はエスケープされ、要素名はすべて有効で、ドキュメントのルート要素は必ず 1 つです。先頭には XML 宣言を任意で付けられます。