XML⇔JSON変換ガイド:設定ファイルとAPIデータ形式の変換

JSON(更新: 2026年6月19日)

XMLとJSONの核心的な違い

特徴 XML JSON
データ形式 タグマークアップ キー・バリュー
属性 あり(<node attr="val"> なし(属性はフィールドに変換)
名前空間 あり(xmlns なし
コメント あり(<!-- --> なし
配列表現 暗黙(同名要素の繰り返し) 明示([]
テキストノード 混合内容(タグ+テキスト) 純粋な文字列値

XMLはドキュメント型データ(SVG、HTML、設定)に適し、JSONは構造化データ(APIレスポンス)に適しています。


XML属性のJSONへのマッピング

XML要素は属性とテキスト内容を同時に持てめり、これが変換の難点です:

単純な要素

<person name="太郎" age="30"/>
{
  "person": {
    "@name": "太郎",
    "@age": "30"
  }
}

慣例として @ プレフィックスでXML属性を表します。これが最も一般的な変換ルールです。

混合内容(属性+テキスト)

<price currency="JPY">980</price>
{
  "price": {
    "@currency": "JPY",
    "#text": "980"
  }
}

#text で要素のテキスト内容を表し、属性と区別します。


配列検出:最もよくある落とし穴

XMLでは配列は暗黙的です——同名要素が繰り返し現れると配列になります:

<books>
  <book>三体</book>
  <book>活きる</book>
</books>
{
  "books": {
    "book": ["三体", "活きる"]
  }
}

問題:要素が1つだけの場合、XMLでは配列かどうか区別できません:

<books>
  <book>三体</book>
</books>

次のように変換される可能性があります:

{
  "books": {
    "book": "三体"
  }
}

解決策XML⇔JSONツール で「配列を強制」オプションにチェックを入れ、常に配列として扱う要素名を指定します。


名前空間の処理

XML名前空間はJSONに直接対応するものがありません:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Body>
    <m:GetPrice xmlns:m="http://example.com">
      <m:Item>123</m:Item>
    </m:GetPrice>
  </soap:Body>
</soap:Envelope>

一般的な処理戦略:

戦略 説明 用途
プレフィックスを保持 soap:Body"soap:Body" SOAP/WSDL処理
プレフィックスを削除 soap:Body"Body" 単純なケース、衝突なし
名前空間キーを使用 {soap}Body 異なる名前空間の同名要素を区別する必要がある場合

XMLフォーマッター でXMLを整形してから変換することをお勧めします。


XML⇔JSONツールの使い方

ステップ1:ツールを開く

XML⇔JSONツール にアクセスし、変換方向を選択します。

ステップ2:ソースデータを入力

  • XML → JSON:XML文字列を貼り付け
  • JSON → XML:JSON文字列を貼り付け

JSONフォーマッター または XMLフォーマッター で事前に整形できます。

ステップ3:変換オプションを設定

オプション 説明
属性プレフィックス 属性を @attr または $attr にマッピング
テキストノードキー テキスト内容を #text または _text にマッピング
配列を強制 常に配列として扱う要素名を指定
名前空間 保持/削除/変換

ステップ4:変換を実行

「変換」をクリックし、結果を確認してコピーします。


実践シナリオ

設定ファイルの移行

多くのレガシープロジェクトはXML設定(Spring、Maven)を使用し、新しいプロジェクトはYAML/JSONを好みます:

pom.xml → package.json(依存情報)
spring-config.xml → application.json(Bean設定)

SOAP APIからRESTへ

SOAPレスポンスはXMLなので、フロントエンド用にJSONに変換する必要があります:

SOAP XMLレスポンス → JSON → フロントエンドレンダリング

SVGメタデータの抽出

SVGはXML形式です。メタデータを抽出してJSONに変換するとプログラムで扱いやすくなります:

<svg width="100" height="100"> → {"svg": {"@width": "100", "@height": "100"}}

JSONからXMLへの変換の注意点

JSONからXMLに変換する際の注意:

注意点 説明
ルート要素 JSONには単一のルートキーが必要
キー名の妥当性 XMLタグ名は数字で始めることができず、スペースを含められない
配列のラッピング JSON配列にはラッパー要素名が必要
特殊文字 <>& はエンティティとしてエスケープが必要

よくある問題

問題 原因 解決策
単一要素が配列にならない XMLで単一要素と配列を区別できない 「配列を強制」にチェック
属性が消失 変換ルールに属性プレフィックスが未設定 属性プレフィックス設定を確認
名前空間の衝突 異なる名前空間に同名要素がある 名前空間プレフィックスを保持
JSON→XMLでエラー キー名が不正 キー名をXML仕様に準拠するよう変更
混合内容が消失 テキストノードキーが正しくマッピングされていない #text 設定を確認

まとめ

XML⇔JSON変換はデータ形式の移行やAPI統合でよくあるニーズです。属性マッピング、配列検出、名前空間の3つのコア問題を理解することが、正確な変換の鍵です。XML⇔JSONツール は柔軟な変換オプションを提供し、JSONフォーマッターXMLフォーマッター で完全な形式変換ワークフローを構築できます。

#XML#JSON#格式转换#API#配置