JSONからXMLへ
JSONドキュメントを貼り付けると、選択したルート要素の名称を含むXML対応データが返されます。配列については一貫した処理方法(繰り返し要素やラッパーの使用)が適用され、オプションとしてXML宣言や美しく配置されたインデントも含まれます。これは、旧システムがXMLを要求する一方で上流のデータがJSON形式で保存されている場合に特に役立ちます。
JSONをXMLに変換する方法
-
1
JSONを貼り付けます
トップレベルのオブジェクトまたは配列です。ルート要素に名前を付与します。
-
2
ルートに名前を付けてください
XMLには単一のルート要素が必要です。デフォルトは`<root>`ですが、`<users>`や`<response>`のように意味のある値を指定してください。
-
3
配列の処理方法を選ぶ
「繰り返し要素」(各配列項目が兄弟の`<item>`になる)または「ラッパー」(配列が名前付きのラッパー要素の中に入る)のいずれかを選びます。
-
4
XMLをコピーします
`<`、`>`、`&`および引用符に対して、オプションのXML宣言、適切なインデント設定、およびエンティティエスケープされた値の使用を指定します。
例:繰り返し要素
入力:
{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }
出力:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<users>
<name>Alice</name>
</users>
<users>
<name>Bob</name>
</users>
</root>
例:配列ラッパー
「配列を<item>で包む」戦略を使用した同じ入力:
<root>
<users>
<item>
<name>Alice</name>
</item>
<item>
<name>Bob</name>
</item>
</users>
</root>
タイプマッピング
| JSON | XML |
|---|---|
| 文字列 | テキスト内容(エンティティエスケープ済み) |
| 整数 / 小数 | テキスト内容(XML型の注釈なし) |
| 真偽値 | true / false をテキストとして |
| null | 空の要素(<foo/>)または省略 |
| 配列 | 繰り返し要素、またはラッパー + 項目 |
| オブジェクト | 子要素を含むネストされた要素 |
属性と要素の違い
XMLでは、属性(<user id="1">)と子要素(<user><id>1</id></user>)を区別します。コンバーターはデフォルトで子要素を使います。子要素は往復変換でも情報が失われません。下流のXMLで属性が必要な場合は、キーの接頭辞の規約を使ってください:
- JSONキー
@idは親要素上でXML属性id="..."として設定されます。 - JSONキー
#textが親要素のテキスト内容となります。
これらの規約は、最も一般的なJSONからXMLへの変換標準であるBadgerFishおよびParkerのマッピングに基づいています。
エスケープ規則
<-><>->>&->&"→"(属性値において)'→'(任意)- UTF-8のバイトはそのまま保持され、XMLプロログで宣言されます。
よくある間違い
- ルートレベルのJSON配列。 XMLでは単一のルート要素が必要です。コンバーターはその配列を
<root>(またはユーザーが選択した名称)で表現します。 - 数値キー。 JSONの
{"1": "a"}は有効です。XML要素名は数字で始めることができません。コンバーターは数字の前にアンダースコア(_1)を付けるか、カスタムマッピングを定義できるようにします。 - 混合配列。
[1, "two", { "x": true }]には明確なマッピングが存在しません。これは通常、JSONデータを変換する前に正規化が必要であることを意味します。 - 大容量のドキュメント。 XMLは記述が詳細なため、10MBのJSONデータが20~30MBのXMLデータに変換されることがあります。非常に大きなデータ量に対してはストリーミング変換を検討してください。
よくある質問
XMLでは仕様上、単一のルート要素が必須です。JSONが配列である場合や複数のトップレベルキーを含む場合は、コンバーターがすべてのデータをユーザーが指定できる名前のルート要素(デフォルト:<root>)に包み込んでいます。
はい。JSONキーには@というプレフィックスを採用してください(例:"@id": 1)。これらのキーは属性として扱われ、他のキーは子要素として保持されます。これはBadgerFishのマッピングと一致しています。
2つの戦略があります:繰り返し現れる同胞要素(各項目には親キーがタグとして設定される)または、内部に<item>要素を含むラッパーです。対象とするXMLスキーマに合致する方を選択してください。
いいえ。コンバーターはXML宣言(<?xml version="1.0"?>)を出力しますが、DTDまたはXSD参照が必要なXMLについては、変換後に手動で追加してください。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
JavaScript圧縮ツール
変数名のリネーム、空白の削除、デッドコードの除去、定数畳み込みでJavaScriptを圧縮し、より小さなバンドルを作成します。
EditorConfig ジェネレーター
インデントのスタイルとサイズ、改行コード、文字コード、空白ルールを指定して .editorconfig ファイルを生成し、IDE やエディタをまたいで書式を統一できます。
メールアドレス検証ツール
メールアドレスを検証します。RFC 5322構文チェック、MXレコードのライブ確認に加え、ローカル部、ドメイン、長さの詳細を表示します。メールは送信されません。
このツールは他の言語でも利用できます
- Chuyển đổi từ JSON sang XML [VI]
- JSON ke XML [ID]
- JSON a XML [ES]
- แปลง JSON เป็น XML [TH]
- JSON naar XML [NL]
- JSON zu XML [DE]
- JSON에서 XML로 [KO]
- JSON do XML [PL]
- JSON para XML [PT]
- JSON إلى XML [AR]
- JSON till XML [SV]
- JSON vers XML [FR]
- Преобразование JSON в XML [RU]
- JSON'ten XML'e [TR]
- JSON 到 XML [ZH]
- JSON to XML [EN]
- JSON in XML [IT]