言語選択

JSONをXMLに変換するオンラインツール

ルート要素の設定、インデント調整、宣言の有無を選べるJSONからXMLへの変換ツール。ブラウザ上で即時変換。

Mehmet Demiray 公開日 更新日
共有
ネストレベルごとのスペース数

なぜ今でもJSONからXMLへの変換が必要なのか

多くの日本の企業システムや公共機関のバックエンドでは、いまだにSOAPベースのWebサービスやXML形式を要求するレガシーシステムが稼働しています。たとえば、税務申告や物流EDI、医療情報交換など、業界標準としてXMLが定着している分野は少なくありません。一方で、現代のフロントエンドやモバイルアプリはJSONをネイティブに扱うため、両者の橋渡しが必要です。「JSONをXMLに変換」ツールを使えば、ブラウザ上で手軽にJSONデータをXML形式に再構成でき、古いAPIとの連携を迅速に実現できます。特に、社内システムのクラウド移行やRPA導入時に、この変換処理は頻繁に発生します。XMLをJSONに変換と組み合わせれば、双方向のデータ変換も可能になり、柔軟なシステム統合が可能です。

JSONとXMLのマッピングルールを理解する

「JSONをXMLに変換」ツールは、JSONの構造をXMLに忠実に反映します。JSONオブジェクトの各キーはXML要素名となり、その値がコンテンツまたは子要素になります。配列(array)は、同じ要素名を繰り返す形で表現されます。たとえば、{ "items": ["りんご", "みかん"] }<items>りんご</items><items>みかん</items> となります。また、変換結果には必ずルート要素が必要なため、デフォルトでは <root> が自動的に付与されますが、任意の名前(例:<shipment><invoice>)に変更可能です。JSONの null 値は空要素(例:<note></note>)として出力され、ブール値や数値もそのまま文字列化されます。ただし、XML要素名として無効な文字(例:スペースや先頭の数字)を含むキーは、変換前に修正が必要です。詳細な整形設定については、JSON整形ツールも併せてご活用ください。

XML出力時のフォーマット設定を活用する

「JSONをXMLに変換」では、生成されるXMLの見た目や構造を細かく制御できます。まず、XML宣言(<?xml version="1.0" encoding="UTF-8"?>)を含めるかどうかを選択可能です。多くのレガシーシステムではこの宣言が必要ですが、一部のパーサーでは不要な場合もあるため、要件に応じて切り替えられます。次に、インデントの有無や深さを調整することで、人間が読みやすい整形済みXMLを生成できます。さらに、属性として扱いたいJSONキーに特定の接頭辞(例:@id@type)を付けることで、XML属性へのマッピングが可能です。これは、スキーマ定義(XSD)に準拠したXMLを出力したい場合に特に有用です。例えば、配送情報で荷物IDを属性として持たせたい際などに活用できます。これらの設定を組み合わせることで、ターゲットシステムの仕様に完全に適合するXMLを即座に作成できます。

JSONからXML変換時の注意点と回避策

JSONをXMLに変換する際、いくつかの落とし穴があります。まず、XML要素名として使用できない文字列がJSONのキーに含まれている場合、変換エラーが発生します。具体的には、先頭が数字(例:"1st_item")やハイフン、またはスペースを含むキーは無効です。このような場合は、事前にキー名を修正するか、プログラムでプレフィックスを付与する必要があります。次に、JSONの null 値は空要素として出力されますが、一部のシステムではこれを明示的に除外したい場合があります。その場合は、変換前に null を削除する前処理を検討してください。また、特殊文字(例:&, <, >)は自動的にエスケープされ(&amp;, &lt;, &gt;)、XMLとして妥当な形式が保たれます。ただし、CDATAセクションの利用はサポートされていないため、大量のHTML埋め込みなどには対応できません。複雑なケースでは、JSONをCSVに変換など他のフォーマットも検討すると良いでしょう。

よくある質問:JSON配列のXML表現とカスタムルート

ユーザーからよく寄せられる質問の一つは、「JSONの配列はXMLでどう表現されるのか?」です。答えはシンプルです:配列の各要素は、同じ名前のXML要素として繰り返されます。例えば、["東京", "大阪"]<city>東京</city><city>大阪</city> となります。これにより、XMLスキーマとの整合性が保たれます。もう一つの代表的な質問は、「カスタムルート要素を設定する方法」です。変換画面で「ルート要素名」の欄に任意の名前(例:ordersresponse)を入力するだけで、<root> の代わりにその名前が使用されます。これは、特定のDTDやXSDに準拠させる際に不可欠です。また、特殊文字(例:&)は自動的に &amp; にエスケープされるため、XMLパーサーによる解析エラーを防げます。JSONキーが数字で始まる場合(例:"2024sales")は、XML要素名として無効となるため、事前に sales_2024 のように修正してください。

最もよくいただく質問

JSONの配列はXMLに変換するとどうなりますか?

JSONの配列は、同じ要素名を繰り返してXMLに変換されます。たとえば、[{"name":"A"},{"name":"B"}] は <item><name>A</name></item><item><name>B</name></item> のように展開されます(ルート要素名はデフォルトで「root」ですが、任意に設定可能です)。詳細なマッピングルールについては変換ルールの解説をご覧ください。

カスタムのルート要素名を指定するにはどうすればよいですか?

「JSONをXMLに変換」ツールのオプション欄に「ルート要素名」を入力してください。何も指定しない場合、デフォルトで「root」が使用されます。たとえば「catalog」を指定すると、出力XML全体が<catalog>…</catalog>で囲まれます。

& や < といった特殊文字は自動でエスケープされますか?

はい、XML仕様に準拠して自動的にエスケープされます。たとえば & は &amp;、< は &lt; に変換され、結果として有効なXMLが生成されます。手動でのエスケープ処理は不要です。

JSONのキーが数字で始まっている場合、変換は可能ですか?

XMLの要素名は数字で始めることができないため、そのようなキーは変換できません。「JSONをXMLに変換」では、無効なXML名(例:「123item」)を持つJSONキーはエラーになります。事前にJSON Formatterなどでキー名を修正することをおすすめします。

null値はXMLでどう表現されますか?

JSONのnull値は、空の要素として出力されます。たとえば {"note":null} は <note/> または <note></note>(整形設定により異なります)になります。属性として扱うことはできませんのでご注意ください。

XML宣言(<?xml version="1.0"?>)は必ず必要ですか?

いいえ、必須ではありません。「JSONをXMLに変換」では、オプションでXML宣言の有無を切り替えられます。古いシステムとの連携では宣言が必要な場合がありますが、多くのモダンなパーサーは省略しても問題なく処理できます。

属性(attribute)として出力したいJSONキーにはどう対応すればよいですか?

現在の「JSONをXMLに変換」ツールは、すべてのJSONキーを子要素として処理し、属性への変換機能は提供していません。属性が必要な場合は、別途XSLTやスクリプトによる後処理をご検討ください。