JSON配列からXML繰り返し要素への変換
JSON配列がXMLの繰り返し要素にどのようにマッピングされるかを学びます。シンプルな配列、オブジェクトの配列、ネストされた配列、配列アイテムの命名規則を解説します。
Structure
詳細な説明
配列はJSON-XML変換で最も難しい部分です。XMLにはネイティブな配列型がないため、配列は同じタグ名を持つ兄弟要素の繰り返しで表現されます。
プリミティブのJSON配列:
{
"colors": ["red", "green", "blue"]
}
一般的なXML表現:
オプション1:ラッパー + 繰り返し要素
<colors>
<color>red</color>
<color>green</color>
<color>blue</color>
</colors>
オプション2:繰り返し要素のみ(ラッパーなし)
<color>red</color>
<color>green</color>
<color>blue</color>
オブジェクトの配列:
{
"users": [
{ "name": "Alice", "role": "admin" },
{ "name": "Bob", "role": "editor" }
]
}
<users>
<user>
<name>Alice</name>
<role>admin</role>
</user>
<user>
<name>Bob</name>
<role>editor</role>
</user>
</users>
配列アイテムの命名規則:
ほとんどのコンバーターは、複数形のラッパーからアイテム要素名の単数形を導出します:
users->useritems->itementries->entry
一部のコンバーターは汎用的な <item> タグを使用するか、子要素名を設定可能にします。
逆の問題(XMLからJSON)も同様に難しいです:繰り返される兄弟要素を見た場合、それをJSON配列にすべきか?ほとんどのコンバーターはヒューリスティックを使用します:2つ以上の兄弟が同じタグ名を共有する場合は配列になります。単一要素はオブジェクトになります。この不整合がバグの一般的な原因です。
ユースケース
注文明細のリストを含むJSON APIレスポンスを、XMLベースの発注書を処理する倉庫管理システムへの提出用にXML形式に変換する場合。