使い方
- JSONをJSONに貼り付けます。最上位のメンバーが1つあり、それがルート要素になります。
- 属性には@idのように@を付けた名前を、要素の文字には#textを使います。
- インデントを選びます。最も短いXMLにしたい場合は改行なし(圧縮)を選びます。
- XMLをコピーするか、converted.xmlとしてダウンロードします。
対応のルール
XMLは要素と属性を持ち、JSONはオブジェクト、配列、値を持ちます。対応は一方向に結び付けます。最上位はメンバーが1つのオブジェクトで、その名前がルート要素になります。オブジェクトは要素になります。@で始まる名前のメンバーは属性になり、#textという名前のメンバーは要素の文字になります。それ以外のメンバーは、その名前を持つ子要素になります。
配列は、項目ごとに1つの子要素を作ります。すべて配列の名前を持つため、本のリストは繰り返しのbook要素として書かれます。文字列、数値、true、falseは文字になります。nullと空のオブジェクトは、空の要素になります。空の配列はXMLの形を持たないため、省かれます。
- 名前はXMLの名前でなければなりません。空白を含むfirst nameのようなキーは、要素の名前にはできません。
- 配列の中の配列は、項目に与える要素の名前がないため、受け付けられません。
- 数値の文字は、JavaScriptが書くとおりに書かれます。そのため、15から16桁を超える有効数字を持つ数値は、JSONの読み取りと同様に桁が失われることがあります。
対応で保てないもの
XMLには型がないため、数値の12と文字列の"12"の違いは、戻すときに失われます。XMLからJSONへの変換ツールは、数値に見える文字を、型の判定をオフにしない限り数値として読みます。空のオブジェクトとnullはXMLでは同じに見え、1つだけの項目の配列は、その項目として戻ります。これらは対応の限界であり、ツールの誤りではありません。
コメントや処理命令は、JSONに保存する場所がないため書かれません。要素の中の文字はエスケープされるため、&、<、>はXMLの中で文字のまま残ります。
計算例:初期値のカタログ
初期値のJSONは、catalogというメンバーを1つ持ちます。その@versionはcatalog要素のversion属性になり、bookの配列は2つのbook要素になります。各bookは@idをid属性として持ち、title、price、inStockのキーは子要素になります。2つ目のbookのpriceのnullは、空のprice要素になります。
スペース2つとXML宣言を付けると、出力は8つの要素になります。カタログ、2冊の本、1冊目の本の子3つ、2冊目の子2つです。件数は8と表示されます。
よくある質問
JSONで属性を書くには、どうすればよいですか?
キーに@を付けてください。"@id": "1"というメンバーは、それを持つ要素にid="1"として書かれます。属性の値は、文字、数値、true、falseでなければならず、オブジェクトや配列は入れられません。
配列が同じ名前の複数の要素になるのはなぜですか?
XMLには配列がありません。配列の各項目は、配列の名前を持つ1つの要素になり、同じ順序で並びます。これは、本や項目のような繰り返しのものを、XMLで一覧にする一般的な方法です。
最上位の誤りが出るのはなぜですか?
XMLには、ルート要素が正確に1つ必要です。JSONは、{"catalog": {...}}のように、メンバーが1つのオブジェクトでなければなりません。最上位にリストや複数のメンバーがあると、1つの文書にはなれません。
空白を含むキーが受け付けられないのはなぜですか?
XMLの要素の名前には空白を含められません。変換する前にキーの名前を変えてください。例えばfirst-nameやfirstNameにします。
JSONはサーバーに送られますか?
いいえ。変換はお使いのブラウザの中で行われます。貼り付けた内容は、当サイトのサーバーに送られることも、保存されることもありません。
出典
数値と文章の最終確認日:2026年11月10日火曜日。