JSONツール

JSON XML変換連携先に合わせて構造を決める

属性、本文、空配列、nullを含むサンプルで、出力の規則を確認できます。

JSON XML変換

XMLをJSONに変換

JSON入力

このブラウザー内で処理します。入力を送信・保存しません。

XML出力

出力設定

型プレビュー

結果が古いため、書き出しできません。

JSON XML変換は、APIが返すオブジェクトをXML文書で受け取るシステムへ渡すときに使います。要素名と名前空間は相手側の仕様に従うもので、入力内容だけから自動判定はできません。

このページでは選んだルートで必ず包みます。単一の値にも同じ規則を適用するため、あるライブラリの暗黙の仕様を知らなくても出力を確認できます。

JSON XML変換で構造を確認する理由

空のリストも残す

JSON XML変換では配列をコンテナ要素にし、各項目をitem要素にします。空配列でもコンテナは消えません。配列の中に配列があれば、その階層も残ります。

二つの項目を持つ配列のコンテナと、削除されずに残る空のコンテナ。

属性と本文を指定する

@idは属性、#textは要素の本文になります。属性と本文は同居できますが、本文と子要素の混在は拒否します。JSONオブジェクトでは任意の混合内容の順番を表せないためです。

オブジェクトの一つの値が属性へ、別の値がタグの間の本文へ移る図。

変換前に確認したい設定

01

ルートは追加される

入力が一つのキーだけでも、そのキーをルートに昇格させません。指定したルートの下に残します。配列項目名はすべての配列階層に適用されるので、受信側の仕様を先に確認してください。

02

特殊フィールドを点検する

初期設定の属性接頭辞は@、本文キーは#textです。変更できますが、マッピングを切ると全キーが要素名として検査されます。残った@idや#textが黙って無視されることはありません。

03

手動でまとめて更新する

自動変換は変更後350ミリ秒待ちます。オフなら変換ボタンまたはCtrl/Cmd+Enterで実行できます。変更直後から書き出しは無効になり、プレビューは50件ずつ、先頭500ノードまで表示します。

明示的な文書の組み立て

名前と名前空間

ルート名と配列項目名にはXML 1.0の有効なローカル名を指定します。既定の名前空間URIはルートで宣言し全要素に適用しますが、接頭辞のない属性には適用しません。

nullの方針を選ぶ

標準ではxsi:nil="true"を付け、xsiも自動宣言します。拒否モードではnullの位置で停止します。空文字列・空オブジェクト・空配列は、存在する空要素として出力されます。

数値と文字の原文を守る

9007199254740993や-0、1e999は数値トークンのまま出力し、JavaScriptの浮動小数点数を経由しません。属性の改行やタブは文字参照にして、XMLの正規化による値の変化を防ぎます。

生成後に再解析する

XML 1.0の整形式と名前空間を検査し、要素名・属性値・本文をマッピング後のツリーと照合します。インデントは2、4、なしから選べ、UTF-8宣言も切り替えられます。

対応しない表現と上限

型の完全な復元はできない
数値と真偽値は型注釈のない文字列になります。空配列・空オブジェクト・空文字列も同じ空要素になり得ます。ノードを残すことと、元のJSONへ一意に戻せることは別です。
キーの自動修正はしない
空キー、空白、数字始まりなど無効な要素名はパス付きエラーにします。下線への置換、並べ替え、コメント対応、重複キーの後勝ちは行いません。
本文と属性は単純な値だけ
非nullの文字列・数値・真偽値のみを受け付けます。オブジェクトや配列は使えません。本文キーと子要素の同居も、本文が空でも拒否します。
任意の接頭辞やスキーマは扱わない
既定の名前空間と@xml:langのみ対応します。xml:spaceを含む他のコロン名、xmlns宣言、xsiの上書きは禁止です。XML/XMLNS予約URIは既定値にできず、XSDやDTD、SOAP仕様の検証もしません。
テキスト入力の制限
入力500,000文字、深さ100、50,000ノード、出力2,000,000文字が上限です。XML禁止制御文字と孤立サロゲートはエラーになります。ファイル読込、URL取得、バッチ、CDATA、逆変換はありません。

JSON XML変換のよくある質問

JSONの配列はXMLでどう変換されますか?

配列名のコンテナを作り、その内側に指定した項目名を繰り返します。空配列も空コンテナとして残します。JSON→XML変換でよくある、項目がないため属性ごと消える挙動は採用していません。

大きなJSONやXMLも変換できますか?

このJSON XML変換ツールには文字数・深さ・ノード数の上限があります。上限超過は明示的なエラーになり、途中までのXMLは書き出せません。プレビューだけの500件制限はダウンロード全体には影響しません。

入力したJSONやXMLは保存されますか?

入力を保存する履歴機能はありません。ページを再読み込みするとサンプルへ戻るので、必要な結果は有効なうちにコピーするかダウンロードしてください。

JSONのどのキーが属性になりますか?

初期設定では@から始まるキーです。たとえば@idをid属性へ変換します。JSONをXMLに変換するとき、通常の数値フィールドを勝手に属性へ変更することはありません。

変換に失敗する場合、どのような原因が考えられますか?

JSON構文、重複キー、不正なXML名、禁止文字、null方針、属性への配列指定などが原因になります。エラーのJSON Pointerと行・列を確認し、対象の値や設定を修正してください。

文書のマッピングで困った点はありますか?

次の連携文書を準備する

JSON XML変換のサンプルを確認してから、受信側のルート名と名前空間を指定してください。