XML ↔ JSON コンバーター
ほとんどのコンバーターが失うものを保持する双方向XML/JSONコンバーター: 属性·混合コンテンツ·繰り返し要素。属性は `@`(設定可能)プレフィックスキーになる → `<book id="1">` は `{"@id": "1"}`。繰り返し子要素は配列に折りたたまれる。属性と並ぶテキストコンテンツは `#text` キー(こちらも設定可能)に入る。XML側はブラウザネイティブ `DOMParser` 使用 — ブラウザが `application/xml` 応答に使うコードパスと同じ → 名前空間·エンティティ·CDATAすべて動作。JSON側は同じ規約を逆順でラウンドトリップ。
使い方
- 方向を選択。XML(またはJSON)を貼り付け — サンプルデータは1クリック。
- 特定スキーマ(`x2js`·`fast-xml-parser`·カスタム)をターゲットにする場合は属性プレフィックスとテキストキーを調整。
- JSON→XMLはルート要素名を設定し `<?xml ... ?>` 宣言をトグル。準備できたらコピー。
よくある質問
- なぜ属性プレフィックス?
- JSONは属性と子要素をネイティブに区別しない。プレフィックス(`@`·`_` または好みのもの)でラウンドトリップが無損失 → XML→JSON→XML 変換しても同じドキュメント。規約なしでは属性と子要素名が衝突。
- 混合コンテンツ(`<p>hello <b>world</b>!</p>`)の処理?
- 部分的に。純粋テキストは文字列、テキストを伴う要素子は子の隣に `{ #text: '...' }`。インターリーブされたテキストと要素(`hello <b>world</b>!` のような)は `#text` キーに結合されたテキストとして折りたたまれる — ラウンドトリップするが元の順序は失われる。混合コンテンツの多いドキュメント(HTML·DocBook)には専用パーサーが良い。
関連ツール
JS オブジェクト ↔ JSON
JavaScript オブジェクトリテラル (`{name: 'Alice'}`) を厳密な JSON に変換 — または厳密な JSON を、引用符なしのキーを持つ整然とした JS リテラルに戻す。
文字列エスケープ変換
1つの入力で10コンテキスト分のエスケープ出力 — JavaScript、JSON、HTMLエンティティ、URL、SQL、regex、Bash(シングル/ダブルクォート)、C文字列、Unicode \u。必要なものをコピー。
Plist ビューア(バイナリ・XML)
Apple のプロパティリストをバイナリでも XML でも開いてツリーで読み、JSON や XML plist に変換できます。
JSON ↔ YAML コンバーター
JSON と YAML を相互変換 — インデント選択、結果コピー。
INI ↔ JSON コンバーター
INI スタイル設定ファイルと JSON の間でラウンドトリップ — セクション、ドット表記ネスト、コメント、値型推論をサポート。
TOML ↔ JSON コンバーター
TOML(`Cargo.toml`、`pyproject.toml`、Hugo 設定)と JSON の間で変換 — テーブル、array-of-tables、インラインテーブル、型付きスカラーを処理。