ブログ
日本語

JSONをXMLに変換 — オブジェクトと配列に対応

JSONをXMLに変換。ルート要素名を指定でき、配列の扱いも明確

ブラウザー内で処理・アップロード不要

オブジェクトのキーは要素名に、配列の各項目はitem要素になります。null・空オブジェクト・空配列はすべて空要素になるため、元の型は復元できません。要素名にできないキーはエラーになります。

変換結果

使い方

  1. 正しいJSONを貼り付けます。
  2. ルート要素名を指定するか、rootのままにします。
  3. 配列や空の値の表され方を確認します。
  4. 生成されたXMLテキストをコピーします。

変換ルール

オブジェクトのキーはXMLの要素名になります。配列の各項目は順序を保ったままitem子要素になります。アンパサンド、山括弧、引用符はXMLエンティティにエスケープします。文字列中の復帰文字(CR)は文字参照で表します。日本語・中国語・絵文字の値はUnicodeテキストのまま残ります。

null・空オブジェクト・空配列はすべて空要素になります。プリミティブ値には型を示す属性が付かないため、この出力だけでは元のJSONの型を再現できません。名前は対応する文字またはアンダースコアで始める必要があり、コロンを含む名前空間プレフィックスには対応していません。XML 1.0の制御文字や単独のサロゲートコードユニットは拒否します。

例

{"name":"太郎","tags":["中文","😀"]} からは、name要素と、2つのitem子要素を持つtags要素が作られます。{"message":"A & B"} ではアンパサンドがエスケープされます。{"empty":null} は空要素になります。

精度と制限

重複したキー、安全な範囲を超える整数、精度が高すぎる小数、あふれる数値は、値を黙って変えるのではなくエラーにします。正確に保ちたい識別子や小数の数量は、JSONの文字列として引用符で囲んでください。入力は100万文字・64階層までです。これは汎用的な要素の対応付けであり、特定のベンダーのXMLスキーマを実装するものではありません。処理はすべてブラウザー内で行います。

よくある質問

配列はどう表されますか?

配列の各値は、外側の要素の中のitem要素になります。配列の順序は保たれます。

JSONの型はすべて保持されますか?

いいえ。数値と文字列は同じテキストとして表され、null・空オブジェクト・空配列は空要素になります。往復しても完全に同じ形に戻したい場合は、元のJSONを残しておいてください。

プロパティ名が拒否されるのはなぜですか?

オブジェクトのキーはXMLの要素名として使える必要があります。空白、コロン、絵文字を含むキーや数字で始まるキーは拒否されます。日本語や中国語の文字は使えます。

データはサーバーに送信されますか?

いいえ。処理はすべてブラウザー内で行います。

ほしいツールはありますか?