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 -> user
  • items -> item
  • entries -> entry

一部のコンバーターは汎用的な <item> タグを使用するか、子要素名を設定可能にします。

逆の問題(XMLからJSON)も同様に難しいです:繰り返される兄弟要素を見た場合、それをJSON配列にすべきか?ほとんどのコンバーターはヒューリスティックを使用します:2つ以上の兄弟が同じタグ名を共有する場合は配列になります。単一要素はオブジェクトになります。この不整合がバグの一般的な原因です。

ユースケース

注文明細のリストを含むJSON APIレスポンスを、XMLベースの発注書を処理する倉庫管理システムへの提出用にXML形式に変換する場合。

試してみる — JSON ↔ XML Converter

フルツールを開く