ツール

XML ⇔ JSON 変換ツール

RSS フィード、サイトマップ、SOAP レスポンス、Maven POM などの XML を JSON に、JSON を XML に変換します。属性は指定したプレフィックスの下に保持します。

ブラウザ内で実行データフォーマット3138
無料

入力

0 B

結果

結果はここに表示されます。

RSS や Atom のフィード、サイトマップ、SOAP サービス、Maven のビルドはいまも XML でやり取りしており、それを扱うコードの多くは JSON のほうを望んでいます。このツールは、Node エコシステムで広く使われている依存関係のないパーサー fast-xml-parser で双方向に変換します。ドキュメントは最初に検証されるため、閉じタグが欠けていれば、中途半端な結果を出す代わりにその行と列を報告します。属性はプレフィックス(既定は @_)の下に置かれるので、同じ名前の子要素と衝突することはありません。テキストは、数値や真偽値のパースを指定しない限り文字列のまま保持されます。

動作のしくみ

  • RSS チャンネルの <item> のように繰り返される兄弟要素は JSON 配列になり、1 つだけならオブジェクトのままです。
  • 属性とテキストの両方を持つ要素は、プレフィックス付きの属性と並んで、テキストを #text の下に持ちます。
  • 型付きの値は既定でオフなので、<version>2.10</version> は数値 2.1 にならず "2.10" のままです。
  • XML へ変換するときは、JSON のトップレベルのキーがちょうど 1 つである必要があり、それがルート要素になります。

データの行き先

どこにも行きません。このツールは完全にブラウザ内で動作します。貼り付けたテキストはページが処理し、サーバーに送信されることも、ログに記録されることもありません。

このツールは無料で登録不要です。結果は開いているページの中にだけあり、どこにも保存されません。

必要なポイント

このツールは無料です。ログインもポイントも必要ありません。

よくある質問

<item> が 1 つだとオブジェクトで、2 つだと配列になるのはなぜですか?
要素が繰り返され得るかどうかは XML 自体には書かれておらず、スキーマにしか書かれていないからです。<item> が 1 つしかなければ、変換ツールには配列を作る理由がありません。コードが常に配列を期待するなら、変換後に [].concat(channel.item) などで正規化してください。
@_ プレフィックスは何を意味しますか?
子要素ではなく属性から来たキーであることを示す印です。<guid isPermaLink="true"> は "@_isPermaLink": "true" になります。コードですでに使っているものに合わせて @ や $ を選べます。JSON から XML への変換でも、同じプレフィックスでどのキーを属性として書き戻すかを判断します。
名前空間、コメント、CDATA はどうなりますか?
名前空間プレフィックスは名前の一部として保持されるので、atom:link は atom:link のままです。コメントは削除され、CDATA セクションは通常のテキストとして読み込まれます。XML 宣言と処理命令はデータを持たないため読み飛ばします。
信頼できない提供元の XML を貼り付けても安全ですか?
はい。fast-xml-parser は外部エンティティや DTD を取得しないため、古典的な XXE 攻撃は何にも到達できません。また、変換はこのページ内で行われ、ドキュメントがどこかへ送信されることはありません。

背後にあるオープンソース

このツールは NaturalIntelligence/fast-xml-parser(MIT)の上で動作しています。同じ処理を自分のプログラムに組み込みたい場合は、そのライブラリを使ってください。

NaturalIntelligence/fast-xml-parser

別の呼び方

  • xml json 変換
  • json xml 変換
  • xml 変換 オンライン
  • rss json 変換
  • xml パーサー
  • xml json 変換 javascript