JSONペイロードをレガシーAPI向けXMLに変換する

連携先はXMLを要求し、手元のデータはJSON。構造(要素・配列・エスケープ)を手書きせず変換します。

このガイドで使う道具

やりたいこと

SOAP時代のエンドポイントや古い社内APIはXMLを要求します。JSONオブジェクトの対応は機械的です。キーは要素、ネストしたオブジェクトはネスト、配列は要素名の繰り返しになります。

貼ってルート名を決めてコピー

JSONを貼り、ルート要素名を設定します。オブジェクトは子要素、配列は同名要素の繰り返し、トップレベル配列はルート内の<item>になります。XML名にできないキーは<item>になります。

  • 出力は常に単一ルートのXML文書で、XML宣言付きです。
  • 特殊文字(本文の& < > "、名前の& <)は自動でエスケープします。

引き継げないもの

JSONの型はテキストに潰れます — 数値と真偽値は文字列形になります。属性は@規約でのみ出力され({"@id": 3}は要素にid="3"を付けます)、"#text"は要素の本文になります。これらの印が無い値はすべて子要素になります。