基本的なJSONからXMLへの変換

フラットなJSONオブジェクトをXML形式に変換する基礎を学びます。キーが要素名に、値がテキストコンテンツになる仕組みと、構造の保持方法を解説します。

Basics

詳細な説明

JSONからXMLへの変換は、モダンなREST APIをXML入力を必要とするレガシーなSOAPサービスやエンタープライズシステムと統合する際によく行われるタスクです。

シンプルなJSONオブジェクト:

{
  "name": "DevToolbox",
  "version": "2.0",
  "active": true
}

XMLに変換すると:

<root>
  <name>DevToolbox</name>
  <version>2.0</version>
  <active>true</active>
</root>

主なマッピングルール:

  1. 各JSONキーがXML要素になる。 キー "name"<name>...</name> にマッピングされます。
  2. プリミティブ値がテキストコンテンツになる。 文字列、数値、ブーリアンは要素内のテキストノードとして配置されます。
  3. ルート要素が必要。 JSONには単一のルートが不要ですが、XMLには正確に1つのルート要素が必要です。コンバーターは通常、出力を <root> またはユーザー指定のタグ名で囲みます。
  4. ブーリアンと数値は文字列化される。 JSON true はXMLでテキスト "true" になり、42"42" になります。XMLには要素コンテンツ用のネイティブな型システムがありません。

データ型の考慮事項:

  • JSON null は空要素 <field/> または xsi:nil="true" 属性付き要素にマッピングできます。
  • XML特殊文字(<, >, &, ", ')を含む文字列はエスケープまたはCDATAセクションで囲む必要があります。
  • 有効なXML要素名でないキー名(数字で始まる、スペースを含むなど)はサニタイズが必要です。

JSONとXML間のロスレスラウンドトリップは、XMLにはJSON に直接対応するものがない機能(属性、名前空間、混合コンテンツ)があるため、常に可能とは限りません。ただし、シンプルなフラットオブジェクトの場合、変換は簡単で可逆です。

ユースケース

Node.jsマイクロサービスからSOAPインターフェース経由でXMLペイロードのみを受け付けるレガシーERPシステムに商品データを送信する場合。各商品は名前、SKU、価格フィールドを持つフラットなJSONオブジェクトです。

試してみる — JSON ↔ XML Converter

フルツールを開く