OpenReplay Logo
12k
12k

XML ⇄ JSON 変換ツール

XML を JSON に、JSON を XML に変換します。すべてブラウザー内でローカルに処理され、属性、繰り返し要素、CDATA、混在コンテンツも自動的に扱います。

ローカルで処理されます

このツールについて

XML と JSON は構造化データの代表的な 2 つのテキスト形式ですが、対応する構造は異なります。XML は要素、属性、混在テキスト、CDATA を持ち、JSON はオブジェクト、配列、型付きのプリミティブを持ちます。このコンバーターは独自のトークナイザー(DOMParser は使用しません)で XML を解析し、予測可能なマッピングを適用します。属性は "@name" キーになり、テキストのみの要素は文字列値になり、繰り返される兄弟要素は配列にまとめられ、属性または子要素とテキストの両方を持つ要素はそのテキストを "#text" キーの下に保持します。CDATA はテキストとして読み込まれ、コメントと XML 宣言は破棄されます。JSON → XML は同じ規則を逆向きに実行し、テキストと属性値をエスケープして 2 つのスペースでインデントします。

レガシーな SOAP や RSS のペイロードを JSON 専用の API に渡したり、複雑な XML 設定をたどれるオブジェクトツリーとして確認したり、ドキュメントを往復変換して構造が保たれているか確かめたりするのに使えます。「値を自動的に型付けする」オプションは、"42"、"true"、"null" のように文字列全体が一致するものを本物の JSON の数値、ブール値、null に変換するため、後続のコードが文字列を再解析する必要がなくなります。すべての末端を文字列のまま残したい場合はこのオプションをオフにしてください。JSON → XML モードでは、JSON が単一キーのオブジェクトでない場合に使われるルート要素名を設定します。

どちらの変換も完全にブラウザー内で実行されます。XML も JSON もサーバーに送信されることはありません。

よくある質問

XML の属性は JSON 出力でどのように表現されますか?

各属性は要素のオブジェクト上で "@" を前に付けたキーになります。たとえば <book id="42"> は {"book": {"@id": 42}} になります。JSON を XML に戻すと、"@" を前に付けたキーは属性に戻ります。

繰り返される XML 要素や混在テキストコンテンツはどうなりますか?

同じタグ名を共有する兄弟要素は JSON の配列にまとめられます。要素が自身のテキストに加えて属性や子要素を持つ場合、そのテキストは "#text" キーの下に保存されるため、何も失われません。

このコンバーターは CDATA、コメント、XML 宣言を扱いますか?

CDATA セクションはプレーンテキストとして読み込まれ、要素の値に統合されます。コメントと <?xml ... ?> 宣言は破棄されます。どちらも JSON にきれいに対応するデータを持たないためです。