XML ⇄ JSON
Tempel salah satu format — format lainnya muncul saat Anda mengetik, dua arah.
Cara menggunakan
- Tempel XML atau JSON ke kotak — hasilnya digambar saat Anda mengetik, tidak ada tombol yang perlu ditekan. Arahnya dideteksi dari karakter pertama (< untuk XML, [ atau { untuk JSON) dan ditampilkan di atas hasil, jadi Anda dapat memeriksanya.
- Jika arahnya salah ditebak, pilih XML → JSON atau JSON → XML. Opsi di bawah berubah mengikuti arah: XML → JSON menampilkan “Deteksi angka & boolean”, dan JSON → XML menampilkan “Nama akar” untuk membungkus larik.
- Salin atau unduh hasilnya. Keduanya memakai teks yang persis terlihat di layar; berkasnya bernama data.json atau data.xml. “Muat contoh” mengisi contoh sesuai arah yang aktif.
Contoh
Masukan (XML)
<note id="1"><to>Andi</to><from>Budi</from><body>Halo!</body></note>
Hasil (JSON)
{ "note": { "@id": "1", "to": "Andi", "from": "Budi", "body": "Halo!" } }
Atribut id menjadi “@id”, setiap elemen anak menjadi kunci, dan teks di dalam <body> menjadi nilai string. Matikan “Deteksi angka & boolean” agar setiap nilai — termasuk id — tetap teks.
Aturan, batasan, dan masalah yang diketahui
- Tidak ada unggahan berkas, seret dan lepas, atau pengambilan URL: tempel teksnya. Zona lepas akan memakan tinggi yang dibutuhkan hasil, dan membaca berkas dengan benar berarti menangani pengodean non-UTF-8 — buka berkasnya di pemformat XML (GB18030, Big5, Windows-1256) dan salin teksnya.
- Masukan dibatasi 1.000.000 karakter; di atas 200.000 hasilnya menunggu sampai Anda berhenti mengetik dan menyatakannya. Di atas batas keras Anda mendapat galat eksplisit — masukan tidak pernah dipotong diam-diam.
- Pemetaannya sengaja tetap: elemen menjadi objek; atribut menjadi “@name”; teks elemen menjadi “#text”; elemen anak menjadi kunci; dan beberapa anak dengan nama sama menjadi larik. Elemen daun yang hanya berisi teks menjadi string biasa, sehingga dokumen yang tersarang dalam tetap mudah dibaca.
- Deteksi tipe (XML → JSON) konservatif: hanya true / false / null (huruf kecil saja) dan angka JSON ketat yang dikonversi ke tipe nyata. Bilangan bulat dengan nol di depan (00501) dan angka 16 digit atau lebih tetap string; sisanya tetap teks saat sakelar mati. Atribut selalu disimpan sebagai teks, tidak pernah diubah tipenya, karena atribut XML bersifat tekstual.
- JSON → XML memerlukan satu akar, jadi objek tingkat teratas memakai satu-satunya kuncinya sebagai elemen akar. Larik JSON tingkat teratas tidak punya satu akar dan dibungkus dalam elemen “Nama akar”, setiap item menjadi anak berulang (bernama “item” secara bawaan).
- Nilai JSON di bawah sebuah kunci dapat berupa objek, larik, string, angka, true / false, atau null. Kunci “@name” menjadi atribut (null / undefined dilewati); “#text” menjadi teks elemen; kunci lainnya menjadi elemen anak. Larik menghasilkan elemen berulang.
- Komentar XML, instruksi pemrosesan (<? … ?>) dan DOCTYPE dibuang dan dihitung (tidak dapat direpresentasikan dalam JSON); CDATA disimpan sebagai teks. Konten campuran — teks di samping elemen anak — diratakan menjadi “#text” dan urutan aslinya tidak dipertahankan; elemen yang terdampak dihitung agar Anda dapat melihatnya.
- JSON diurai secara ketat: tanpa komentar, tanpa koma di ujung, tanpa kutip tunggal, tanpa karakter kontrol yang tidak di-escape, penyarangan hingga 64 tingkat. Satu objek per baris (JSON Lines) tidak diterima — bungkus objeknya dalam larik dulu.
- Referensi entitas XML (& < >) dipertahankan apa adanya dalam teks dan atribut (tidak didekode), sehingga perjalanan bolak-balik menghasilkan byte yang persis. Escaping ditambahkan di sisi JSON → XML: & < > di-escape dalam teks, dan “ di-escape dalam nilai atribut.
- Di luar cakupan: XSLT, XPath, validasi XML Schema, namespace sebagai apa pun selain bagian dari nama tag, JSON dengan kunci duplikat (yang terakhir menang, seperti JSON.parse), dan pemeliharaan urutan komentar. Tidak ada yang diunggah, disimpan, atau dimasukkan ke URL.
Alat terkait
Yang biasanya dibutuhkan berikutnya setelah data berada di format lain.