m moji kit v1.0.9
変換 JSON → XML

JSON を XML に変換する

JSON データを XML 形式に書き出す方法です。属性とテキスト、ルート要素の扱い方を解説します。

解説

JSON から XML への変換は、JSON にない概念 (属性・名前空間・DOCTYPE) を JSON 側でどう表現していたかに依存します。`@key` を属性、`#text` をテキストとする規約があれば、それに沿って展開します。配列は同名要素の繰り返しになります。 ルート要素も決め方が要ります。トップが配列や複数キーのオブジェクトなら、<root> や <items> のようなラッパー要素で包みます。SOAP / レガシー XML API への投入、RSS / Atom フィード生成が主な用途です。

サンプル入力(JSON)

{
  "users": {
    "user": [
      { "@id": "1", "name": "alice" },
      { "@id": "2", "name": "bob" }
    ]
  }
}

サンプル出力(XML)

<users>
  <user id="1">
    <name>alice</name>
  </user>
  <user id="2">
    <name>bob</name>
  </user>
</users>

使うときのコツ

  • · ルートが配列の JSON はそのまま XML 化できないので、明示的にラッパー要素を追加する
  • · 数値・真偽値は文字列として埋め込まれる(XML には型がないため)
  • · XML 宣言 <?xml version="1.0" encoding="UTF-8"?> を先頭に付けるかは仕様次第

よくある質問

JSON のキーに XML で禁止された文字(数字始まり等)があったら?
XML の要素名はアルファベット・アンダースコア始まりに限られます。数字始まりや空白を含むキーはそのままでは XML 要素名にできないので、置換するか属性として扱う必要があります。
属性とテキスト要素の使い分けは?
メタ情報(id / type など短い識別子)は属性、コンテンツやネストは要素にするのが慣習です。SOAP では attribute 多用、RSS では要素多用と仕様により異なります。
名前空間(xmlns)はどう付与する?
ルート要素に xmlns="..." を追加します。本ツールでは自動付与しないので、出力後に手動で挿入してください。
JSON の null は XML でどう表現?
標準的な慣習はなく、空要素 `<key/>` か xsi:nil="true" 属性が使われます。受け取り側の仕様に従ってください。
JSON 配列はどう変換される?
同名要素を繰り返す形にします。例: `"items": [1,2,3]` → `<items>1</items><items>2</items><items>3</items>`。命名は親要素+単数形のラッパーを使うこともあります。
DOCTYPE や XSD はどうする?
JSON にこれらに相当する情報がないので、変換時には付与されません。受け取り側で要求される場合は別途追加してください。

関連ツール

{ }
JSON フォーマッタ
JSON を整形・圧縮・キーソートします。