XMLからJSONへ
XMLとJSONはデータの表現方法が異なります。XMLには属性と混在コンテンツがあり、JSONにはオブジェクトと配列があります。情報を失わずに変換するには規約が必要です。本ツールでは3つの規約を用意しています。コンパクト(属性を削除)、Badgerfish(属性は@keyの下に、テキストは$の下に格納)、リテラル(すべてのXMLノードを完全な忠実度でJSONオブジェクトに変換)です。対象とするJSON利用側に最適な規約を選んでください。
XMLをJSONに変換する方法
-
1
XMLを貼り付けます
正しく構成されたすべてのXMLです。ネームスペースは保持されます。
-
2
変換スタイルを選択
コンパクト、Badgerfish、リテラル(ロスレス)から選べます。
-
3
配列を扱う
特定の要素を常に配列にするよう指定できます(設定可能)。
-
4
JSON出力をコピー
整形表示または圧縮形式、お好みで選べます。
3つのスタイルの比較
入力:
<book id="1" lang="en">
<title>1984</title>
<author>Orwell</author>
</book>
コンパクト(属性を削除):
{
"book": {
"title": "1984",
"author": "Orwell"
}
}
Badgerfish(属性は@の下に、テキストは$の下に):
{
"book": {
"@id": "1",
"@lang": "en",
"title": { "$": "1984" },
"author": { "$": "Orwell" }
}
}
リテラル/JsonML風(完全な忠実度):
{
"book": {
"@attributes": { "id": "1", "lang": "en" },
"title": "1984",
"author": "Orwell"
}
}
強制配列
XMLには「これは要素が1つだけのリストである」と表現する方法がありません。単一要素のシーケンスはスカラーとまったく同じように見えます。
<items>
<item>A</item>
</items>
これは{"item": "A"}または{"item": ["A"]}のいずれかにシリアル化されます。このコンバーターでは、要素名を(XPathで)常に配列として指定できるため、下流のJSON利用側が一貫した型を受け取れます。
混在コンテンツ
混在コンテンツ(子要素の間にテキストが入り混じったもの)は、XMLからJSONへの変換で唯一情報が失われる箇所です。
<p>Hello <em>world</em>!</p>
ほとんどのスタイルではテキストを削除するか、まとめてしまいます。リテラルスタイルでは配列を用いて順序を保持します:
{
"p": {
"@content": ["Hello ", { "em": "world" }, "!"]
}
}
型推論
デフォルトでは値は文字列です。「数値/真偽値を解析」をオンにすると、コンバーターは42、3.14、true、falseを対応するJSON型に変換します。注意してください。型変換をオンにするとXML属性のid="007"が7になってしまい、これはおそらく望ましくありません。
どれを選ぶべきか
- コンパクト: 属性がノイズになる、人間が読みやすいJSONに。
- Badgerfish: 属性とテキストを子要素と同じ深さに置く必要がある場合に。
- リテラル: 損失なくXMLに往復変換する必要がある場合に。
よくある質問
要素が1回だけ現れる場合、コンバーターはデフォルトでオブジェクトにします。2回以上現れる場合は配列にします。利用側が1つの形を期待している場合は、配列を強制するオプションを使って一貫させてください。
「名前空間を除去」を有効にしない限り、名前空間の接頭辞はキー(ns:title)に保持されます。宣言そのものはルート要素の@xmlns:ns属性になります。
リテラルモードがロスレスに最も近いですが、要素とテキストの間の混在コンテンツの順序は扱いが難しいです。コンパクトモードでは属性が確実に失われます。Badgerfishは実用的な中間案です。
いいえ。変換処理はブラウザ内で実行されます。
関連ツール
プレースホルダー画像ジェネレーター
1〜4000 pxの画像に色と文字を設定し、PNGで保存できます。外部URLとHTMLもコピーできます。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
HTML 圧縮ツール
通常のコメントを削除し、空白を整理して、ブラウザ内で HTML をコンパクトにします。使用前に結果を確認してください。
ランダム英字ジェネレーター
A-Zの英字をランダムに生成します。文字数を指定し、大文字・小文字・混在を選んで、ゲーム、課題、授業活動に使えます。
Markdownリンク生成ツール
URLとアンカーテキストからMarkdownリンクの記法を生成します。タイトルのツールチップや、長い文書を読みやすく整える参照形式のリンクにも対応しています。
Nginx 設定ジェネレーター
かんたんなフォームから、TLS・HTTP/2・gzip・ブラウザキャッシュ・リバースプロキシの設定を含む Nginx の server block を生成します。
このツールは他の言語でも利用できます
- XML naar JSON [NL]
- XML a JSON [ES]
- Chuyển đổi từ XML sang JSON [VI]
- XML para JSON [PT]
- XML ke JSON [ID]
- XML zu JSON [DE]
- XML till JSON [SV]
- XML إلى JSON [AR]
- XML do JSON [PL]
- XML → JSON [KO]
- แปลง XML เป็น JSON [TH]
- XML vers JSON [FR]
- XML to JSON [EN]
- XML in JSON [IT]
- От XML к JSON [RU]
- XML'den JSON'a [TR]
- XML 转 JSON [ZH]