XML → JSON 変換ツール
XMLを貼り付けるだけで、要素・属性・テキストを保持したJSONに変換でき、JavaScriptやAPIでそのまま扱えます。
JSON
XMLドキュメントをJSONに変換
XMLとJSONではデータの表し方が異なります。XMLには属性、テキストノード、繰り返し要素がありますが、JSONにあるのはオブジェクト、配列、値だけです。このツールはコンパクトで情報を失わないマッピングを採用しています。各要素はキーになり、属性は _attributes の下に、テキストの内容は _text の下に格納され、複数回出現する要素は配列になります。XML宣言は _declaration の下に保持されます。何も失われないため、JSONを編集してからJSON → XML変換ツールでXMLに戻すことができます。
使い方
- SOAPレスポンス、RSSフィード、Mavenのpom.xmlなど、XMLを貼り付けます。
- 出力エディタでJSONを確認します。パースエラーが発生した場合は、XMLの不正な箇所の行が表示されます。
- JSONをコピーします。「入れ替え」を押すとXMLに戻せます。
よくある質問
- XML内の数値が文字列に変換されるのはなぜですか?
- XMLにはデータ型がなく、要素の中身はすべてテキストです。先頭がゼロの郵便番号などを誤って解釈しないよう、値は _text の下に文字列として保持されます。
- 要素がオブジェクトになったり配列になったりするのはなぜですか?
- 単独の要素はオブジェクトになり、同じ名前の兄弟要素が繰り返されると配列になります。コードで両方に対応する必要がある場合は、Array.isArray で判定するか、値を配列に正規化してください。
- _attributes と _text は何を意味しますか?
- _attributes には要素の属性がキーと値のペアで、_text にはテキストの内容が格納されます。固定の名前を使うことで、属性と子要素の名前が衝突しないようにしています。
例: XMLからJSONへの変換
XML 入力
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book id="bk102">
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>JSON 出力
{
"_declaration": {
"_attributes": {
"version": "1.0",
"encoding": "UTF-8"
}
},
"catalog": {
"book": [
{
"_attributes": {
"id": "bk101"
},
"title": {
"_text": "XML Developer's Guide"
},
"price": {
"_text": "44.95"
}
},
{
"_attributes": {
"id": "bk102"
},
"title": {
"_text": "Midnight Rain"
},
"price": {
"_text": "5.95"
}
}
]
}
}