Konverter JSON ke XML
Tempel JSON di kiri, dapatkan XML yang terbentuk dengan baik di kanan. Kunci dengan awalan @_ menjadi atribut. Tanpa unggah.
- Tempel JSON ke area teks kiri.
- Klik "Konversi ke XML". Kunci JSON menjadi elemen; @_kunci menjadi atribut.
- Salin atau unduh XML yang diformat.
- Bungkus data Anda dengan satu kunci root — XML butuh satu elemen tingkat atas.
Apa fungsinya?
Mengonversi objek JSON ke XML menggunakan konvensi fast-xml-parser. Properti objek menjadi elemen anak; properti dengan prefiks `@_` menjadi atribut pada induk; array menjadi elemen saudara berulang dengan nama tag yang sama. Angka, boolean, dan string dipancarkan sebagai konten teks. Output diberi indentasi untuk keterbacaan.
Contoh
Input JSON:
{
"root": {
"@_version": 1,
"name": "Ada",
"tags": ["math", "logic"]
}
} Output XML:
<root version="1">
<name>Ada</name>
<tags>math</tags>
<tags>logic</tags>
</root> Jebakan umum JSON ke XML
XML lebih ketat daripada JSON dalam struktur. Pola di bawah mencakup sebagian besar output yang mengejutkan.
- Tidak ada root tunggal. XML memerlukan tepat satu elemen root. Objek JSON dengan beberapa kunci tingkat atas menghasilkan beberapa root, yang merupakan XML tidak valid. Bungkus input Anda dalam satu kunci: `{"root": {"a":1, "b":2}}`.
- Array tingkat atas. Array JSON `[{"a":1},{"a":2}]` tidak punya nama elemen root untuk digunakan. Bungkus: `{"items": [{"a":1},{"a":2}]}`. Setiap entri array kemudian menjadi elemen `<items>`.
- Nama elemen dengan spasi atau simbol. Nama elemen XML tidak bisa berisi spasi, dimulai dengan digit, atau berisi `:`, `/`, `<`, dll. Bersihkan kunci JSON sebelum konversi — ganti spasi dengan `_`, prefiks digit dengan huruf.
- Atribut vs. elemen. Kunci JSON `id` menjadi elemen anak `<id>1</id>`. Untuk membuatnya atribut (`<user id="1">`), prefiks kunci dengan `@_`: `{"user":{"@_id":1}}`. Prefiks dilucuti pada output.
- Nilai null. JSON `null` menjadi elemen kosong (`<x/>`). Jika Anda perlu menghilangkannya sepenuhnya, hapus nilai null dari JSON Anda sebelum konversi.
- Karakter khusus dalam teks. XML otomatis meng-escape `<`, `>`, `&`, `"`, dan `\'`. String JSON Anda `"<b>hi</b>"` menjadi teks `<b>hi</b>`, bukan elemen bersarang. Gunakan struktur JSON perantara jika Anda mau bersarang nyata.
Pertanyaan yang sering diajukan
Bagaimana mendapatkan deklarasi XML `<?xml version="1.0"?>`?
Tambahkan sendiri di awal output — konverter tidak memancarkan deklarasi. Untuk XML UTF-8, deklarasi secara teknis opsional tetapi umum disertakan: `<?xml version="1.0" encoding="UTF-8"?>` diikuti XML yang dikonversi.
Apakah array JSON dipertahankan sebagai elemen berulang?
Ya. `{"tags":["a","b"]}` menjadi `<tags>a</tags><tags>b</tags>` — dua saudara dengan tag yang sama, yaitu representasi XML standar dari nilai berulang.
Bisakah saya mendapatkan array bersarang gaya JSON di XML?
Tidak langsung. XML tidak punya konsep array native; hanya saudara berulang. Array bersarang di JSON menjadi struktur XML lebih datar di mana konteks menentukan pengelompokan. Round-trip XML → JSON → XML melalui alat ini mempertahankan subset yang round-trippable.
Bagaimana tanggal ditangani?
JSON tidak punya tipe Date — tanggal biasanya sudah berupa string ISO 8601. Itu menjadi konten teks elemen tanpa perubahan. Jika XML hilir Anda mengharapkan format tanggal tertentu, pastikan JSON pakai format itu.
Apakah JSON saya diunggah?
Tidak. Semua berjalan di browser Anda — input Anda di-parse dan dikonversi oleh JavaScript di halaman ini dan tidak pernah dikirim ke server.
Apakah round-trip JSON → XML → JSON akan menjaga data saya?
Untuk data terstruktur tipikal dengan konvensi atribut @_, ya — secara semantik. Beberapa kasus tepi (teks campuran + elemen anak, urutan atribut vs. urutan elemen) bisa dinormalkan. Jika ekuivalensi byte-for-byte penting, jangan round-trip melalui XML.