XML to JSON コンバーター
XML を即座に JSON に変換
XML入力
オプション
JSON出力
変換結果がここに表示されます...
概要
XML to JSON コンバーターは、SOAP レスポンス、RSS/Atom フィード、レガシーな設定ファイルなど、マークアップの多い XML を、JavaScript や Node.js のコードがそのまま扱えるクリーンな JSON に変換します。正規表現ではなく本物の XML パーサーで動作するため、整形式(well-formed)であるかを検証し、タグが壊れている場合は正確な行番号と列番号を報告し、属性・名前空間・繰り返し要素が生成される JSON でどう表現されるかを細かく制御できます。
このコンバーターが検出・処理する内容
- •本物の XML 検証:不正な XML(閉じられていないタグ、入れ子の不一致、誤った属性構文)は、あいまいな推測ではなく正確な行番号・列番号とともに拒否されます
- •設定可能な属性処理:プレフィックス付きで保持(@_id)、通常のオブジェクトプロパティに変換、単一の $attributes オブジェクトにまとめる、または完全に破棄する、から選べます
- •名前空間戦略:タグ名の名前空間プレフィックスをそのまま保持する、よりクリーンなキーのために削除する、または名前空間 URI をメタデータとして別に保持する、から選べます
- •SOAP クリーンアップ:SOAP レスポンスによくある Envelope/Body ラッパー要素を自動的に取り除き、ペイロードだけを残します(一度適用すると往復安全ではなくなります)
- •CDATA と型解析の制御:CDATA セクションを専用プロパティに展開するかどうかを選べ、数値や真偽値らしきテキストをどれだけ積極的に実際の JSON 型に変換するかも選べます
- •配列強制パス:rss.channel.item のような特定のドット区切りパスを指定すると、フィードにたまたま項目が1つしかなくても常に JSON 配列になります
- •すべてブラウザ内で処理:XML データがサーバーにアップロードされることはありません
XML を JSON に変換する場面
- •レガシーな SOAP API を JSON ベースの REST エンドポイントに移行し、SOAP クライアントなしで JavaScript や Node.js のコードがレスポンスを扱えるようにする
- •RSS や Atom フィードを JSON にパースして、JavaScript フレームワークでコンテンツアグリゲーターやニュースダッシュボードを構築する
- •Maven の pom.xml や .NET の web.config のような XML 設定ファイルを JSON に変換し、プログラムによる編集や他の設定形式との比較を行う
- •デバッグ中に冗長な XML API レスポンスを読みやすいインデント付き JSON に変換して確認する
- •XML のデータエクスポートを MongoDB のような JSON ネイティブなデータベースに取り込む
XML を JSON に変換する方法
- 1.XML を入力エディタに貼り付けるか、.xml ファイルをアップロードします
- 2.属性の表現方法を選びます:プレフィックス付きプロパティ、通常のプロパティ、$attributes にまとめる、または完全に無視する
- 3.名前空間戦略(保持・削除・メタデータとして保持)を選び、結果のキーをどれだけクリーンにしたいかに合わせます
- 4.SOAP エンベロープを変換していて内部のペイロードだけが欲しい場合は SOAP クリーンアップを有効にします
- 5.変換ボタンをクリックし、JSON 出力をコピーするか、整形済みまたは圧縮済みの .json としてダウンロードします
知っておくべきエッジケース
- •繰り返し要素が1つしかない場合(複数ではなく <item> が1つ)、配列強制パスにそのパスを指定しない限り自動的に配列とはみなされません。指定しないと単なるオブジェクトに変換され、配列を期待するコードが壊れる可能性があります
- •混合コンテンツ(テキストと子要素の両方を含む要素)はフラット化され、テキスト部分は子のキーと並んで #text プロパティとして表示されます
- •"00123" のように先頭にゼロが付く数値らしき値や、JSON の安全な精度を超える整数は、デフォルトでは文字列として保持されます。積極的な型解析は、データに ID のような値が含まれていないと確信できる場合にのみ有効にしてください
- •JSON にはコメントに相当する構造がないため、XML コメントは変換時に破棄されます
制限事項
- •往復変換(XML から JSON、そして再び XML へ)は、元のバイト列を完全に再現することを保証しません。往復セーフモードを有効にしない限り、要素の順序、空白、コメントは完全には保持されず、有効にした場合でも XML から JSON への変換部分にのみ適用されます
- •非常に大きな XML ドキュメント(数十メガバイト)はブラウザのメモリ上限を超えたり、パーサーの処理を遅くしたりする可能性があります。巨大なファイルにはストリーミング(SAX)パーサーや xmlstarlet のようなコマンドラインツールを使用してください
- •このツールは整形式であるかどうかのみを検証し、XSD スキーマに対する正しさは検証しません。整形式ではあるがスキーマに違反しているドキュメントも、警告なしに変換されます
逆方向の変換が必要ですか?
JSON オブジェクトや配列から始めて、XML が必要な場合(例えばレガシーな SOAP エンドポイントを呼び出す、あるいは XML 専用ツールが要求する設定ファイルを生成する場合など)は、JSON to XML コンバーターをご利用ください。インデントを制御したり、@ プレフィックス付きのキーを属性にするかどうかを決めたり、空要素を抑制したりできます。