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については、変換後に手動で追加してください。
関連ツール
Webpack設定ジェネレーター
素の JavaScript、React、Vue 向けに webpack 5 の webpack.config.js を生成します。TypeScript、Babel、CSS や Sass、画像、HtmlWebpackPlugin、開発サーバー、npm install のコマンドまでそろいます。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
.gitignore ジェネレーター
Laravel、Node.js、Python、Rails のプロジェクト用除外ルールを組み合わせます。結果をコピーするか、.gitignore 入りの ZIP をダウンロードできます。個人用ルールは別に表示します。
16進数から10進数への変換ツール
16進数を10進数(10進法)に変換します。メモリアドレス、エラーコード、RGBチャンネル、任意精度の整数に対応します。
tsconfig.json ジェネレーター
target、module、moduleResolution、JSXと定番のstrict系フラグを選んで、きれいなtsconfig.jsonを生成。そのままプロジェクトにコピーできます。
Dockerfileジェネレーター
5つのアプリ構成に合うDockerfileと.dockerignoreを作成。実際の起動対象、作業ディレクトリ、内部ポートを入力し、両方のファイルを確認できます。
このツールは他の言語でも利用できます
- JSON zu XML [DE]
- JSON에서 XML로 [KO]
- JSON naar XML [NL]
- Chuyển đổi từ JSON sang XML [VI]
- JSON do XML [PL]
- JSON till XML [SV]
- JSON ke XML [ID]
- แปลง JSON เป็น XML [TH]
- JSON a XML [ES]
- JSON إلى XML [AR]
- JSON vers XML [FR]
- JSON para XML [PT]
- JSON 到 XML [ZH]
- JSON to XML [EN]
- JSON in XML [IT]
- Преобразование JSON в XML [RU]
- JSON'ten XML'e [TR]