開発者ツール / 01
XML→JSONコンバーター
属性や繰り返し要素も無理のない形で扱い、XMLドキュメントを読みやすいJSONに変換します。
XML→JSONコンバーター: TOEAはドキュメントの要素・属性・テキスト・CDATAを読み取り、次の規則でJSONに変換します: 属性には@を接頭辞として付け、独立したテキストは#textに入れ、同名の兄弟要素が繰り返される場合は配列にします。 サーバーへのファイルアップロードは一切なく、100%ブラウザ内でローカル実行します。
- カテゴリ
- 開発者ツール
- 実行回数
- ブラウザ内で
- コスト
- 無料 · 登録不要
- 提供状況
- すぐに使えます
完全にブラウザ内で実行します
最大5 MB · 何もアップロードされません
すべてテキストとして扱われる
XMLにはデータ型がないため、<count>42</count>は"42"に、<active>true</active>は"true"になります。数値やブール値への変換は、各フィールドの意味が分かっているJSONの読み取りコードで行ってください。属性も同様で、@idは数値に見えても文字列を保持します。
結果を読み取るコードでは、要素が常に繰り返されるとは限らないことにも対処する必要があります。<item>が1回だけ現れるとオブジェクトになり、2回現れると配列になります。ループの前にArray.isArray(x) ? x : [x]で統一してください。
うまく変換できないドキュメント
この変換は、設定、APIレスポンス、フィード、エクスポートなどのデータに適しています。文章にはあまり適していません。<p>Read <b>this</b> first</p>では、通常のテキストが1つの#text値に結合され、太字の単語が別のキーになるため、読み上げ順序が失われます。XHTML、DocBookなどのドキュメント形式は、XMLライブラリで処理する方が適しています。変換前にドキュメントの構造を確認するには、XMLフォーマッターでインデントしてください。
使い方
- XMLを貼り付けるか、ファイルを選びます。
- インデント幅を選びます。
- JSONをコピーするかダウンロードします。
プライバシーと制限事項
テキストはブラウザ内で変換され、アップロードされません。設定ファイルや他人に渡したくないエクスポートの場合に重要です。名前空間は解決せず、要素名にそのまま保持します。
関連ツール
よくある質問
なぜ属性は@で始まるのですか?
XMLでは属性は子要素と区別されますが、JSONにはその区別がありません。@の接頭辞で分けることで、推測なしに変換を元に戻せます。
なぜある要素が配列になったのですか?
同名の兄弟要素が繰り返されると、それは構造上配列を意味するため必ず配列にします。1回だけ現れる名前は単一の値のままです。
#textは何のためにありますか?
テキストと子要素の両方を持つ要素では、独立したテキストを入れる場所が必要です。その入れ物が#textです。
サポートしていないものは何ですか?
DTDのエンティティ定義、名前空間の解決、宣言以外の処理命令です。設定ファイルやAPIのペイロードはこれらを使用しません。
無料ツール · ブラウザ内で · アカウント不要