使い方
- XML欄にXMLを貼り付けます。最初に形式を確認し、問題があれば行と列を示します。
- 数値、true、falseを値として読むにチェックを入れたままにすると、12.5が数値として読まれます。チェックを外すと、すべてのテキストが文字列のまま残ります。
- インデントを選びます。最も短いJSONにするには改行なし(圧縮)を選びます。
- JSONをコピーするか、converted.jsonとしてダウンロードします。
変換の対応規則
ルート要素は、JSONオブジェクトの唯一のメンバーになります。そのため、catalogというルートはcatalogというメンバーになります。属性は、@で始まる名前のメンバーになります(例:@id)。要素のテキストは、ほかに子要素がない場合にその値になります。子要素もある場合は、前後の空白を取り除いたテキストが#textというメンバーになります。
子要素は、その名前のメンバーになります。同じ名前が2回以上現れる場合は、文書の順序で配列になります。属性も子要素もない要素は、自己終了タグ(タグの末尾のスラッシュ)で書かれた場合はnullになり、開始タグと終了タグで書かれた場合は空の文字列になります。
- CDATAセクションは、書かれたとおりのテキストとして扱われます。そのため、内部の小なり記号は小なり記号のまま残ります。
- コメントと処理命令は取り除かれます。JSONにはそれを置く場所がないためです。
- &やAのような参照は読み取られ、表す文字になります。
型のある値と、その変更点
XMLには数値や真偽値がありません。XMLの12.5は文字列にすぎません。型の設定をオンにすると、JSONの数値、true、falseとして書き戻したときに同じになる文字列が、その値として読まれます。12.50や007のような文字列は、数値にすると書き方が変わるため、文字列のまま残ります。
要素が1つだけの配列は、XMLでは配列と区別できないため、配列ではなくその要素の値として返されます。配列を期待するプログラムがJSONを読む場合は、この点に注意が必要です。
実例:初期値のカタログ
初期値のXMLは、2冊の本を含むカタログです。最初の本にはid属性があり、title、price、inStockの各要素がキーになります。2冊目の本にはinStock要素がなく、空のprice要素はnullになります。
JSONにはcatalogという1つのメンバーがあり、そのbookキーは2つのオブジェクトの配列です。要素数は8と表示されます。これは、カタログ、2冊の本、そしてそれぞれの子要素です。
よくある質問
数値が文字列として表示されるのはなぜですか?
JSONの数値として書き戻したときに同じにならない文字列は、文字列のまま残ります。例えば12.50は末尾の0が、007は先頭の0が残ります。すべての値を文字列として残すには、型の設定をオフにします。
1つの要素がオブジェクトになり、配列にならないのはなぜですか?
配列になるのは、1つの要素の子要素の中に同じ名前が2回以上現れる場合だけです。1つだけの要素は、その値として出力されます。これはXMLでは一般的な結果です。
コメントと処理命令はどうなりますか?
取り除かれます。JSONにはコメントを置く場所がないため、変換ツールはデータだけを読み取ります。コメントが重要な場合は、元のXMLを残しておくとよいです。
変換ツールが行と列を示すのはなぜですか?
XMLは、読み取る前に正しい形式でなければなりません。行と列は、文書がXMLの規則に反する最初の箇所を示します。例えば、対応しない終了タグがある場合です。
入力したXMLはサーバーに送信されますか?
いいえ。変換はお使いのブラウザ内で行います。貼り付けた内容が当サイトのサーバーに送信されたり、保存されたりすることはありません。
出典
- W3C(英語): Extensible Markup Language (XML) 1.0, Fifth Edition
- RFC 8259(英語): The JavaScript Object Notation (JSON) Data Interchange Format
数値と文章の最終確認日:2026年11月10日火曜日。