XML ke Penukar JSON
Tukar data atau fail XML kepada format JSON serta-merta dalam penyemak imbas anda. Menyokong lekukan tersuai dan mengendalikan struktur bersarang.
Pilih fail XML
atau seret dan lepaskan di sini
Tukar data atau fail XML kepada format JSON serta-merta dalam penyemak imbas anda. Menyokong lekukan tersuai dan mengendalikan struktur bersarang.
atau seret dan lepaskan di sini
XML dan JSON adalah kedua-dua format pertukaran data tetapi datang dari era web yang berbeza. XML, diseragamkan pada tahun 1998, telah direka bentuk sebagai format penanda yang menerangkan sendiri dengan atribut, ruang nama dan pengesahan skema. JSON muncul pada awal tahun 2000-an sebagai format ringan yang lebih sesuai untuk masa jalan JavaScript dan API moden. Kebanyakan API web baharu bercakap JSON; banyak sistem lama — perkhidmatan SOAP, suapan RSS, fail konfigurasi, integrasi perusahaan — masih menghasilkan XML. Menukar antara mereka adalah salah satu tugas interop yang paling biasa dalam pembangunan moden.
Penukaran bukanlah tanpa kerugian kerana kedua-dua format mempunyai kuasa ekspresif yang berbeza. XML mempunyai atribut (yang bukan JSON asli), membezakan antara kandungan teks dan nama elemen dan menyokong kandungan bercampur (elemen yang mengandungi kedua-dua elemen teks dan anak). Model objek/tatasusunan mudah JSON tidak boleh mewakili ciri ini secara langsung, jadi penukar menggunakan konvensyen: atribut menjadi kunci @-prefixed, kandungan teks menjadi kunci #teks dan seterusnya.
Penukar ini menghuraikan XML menggunakan DOMParser terbina dalam penyemak imbas dan menjalankan pepohon DOM yang terhasil untuk menghasilkan JSON. Elemen dengan nama tag yang sama seperti adik-beradik dikumpulkan ke dalam tatasusunan; atribut masuk ke kunci khas; ruang nama dan arahan pemprosesan disimpan apabila ada. Hasilnya ialah JSON yang boleh dibaca manusia yang pergi balik dengan munasabah ke XML.
Kebanyakan kod aplikasi moden lebih selesa dengan JSON. JavaScript menghuraikan JSON secara asli, modul json Python berada dalam pustaka standard, dan hampir setiap bahasa lain mempunyai sokongan JSON kelas pertama yang setara. Pemprosesan XML memerlukan pengimportan perpustakaan tambahan dan menulis lebih banyak boilerplate. Menukar XML masuk kepada JSON sebelum pemprosesan selalunya merupakan laluan terpantas daripada suapan XML luaran kepada struktur data dalaman.
Perkakas juga menyandarkan JSON. Pengindah, pengesah, pengesah skema, bahasa pertanyaan (jq, JSONPath) dan penonton JSON adalah banyak; setara XML adalah lebih sedikit dan kerap lebih lama. Bekerja dalam JSON membuka kunci ekosistem alatan yang lebih kaya.
Tampal XML, dapatkan JSON.
DOMParser menghasilkan DOM XML yang sama dengan apa yang digunakan oleh penyemak imbas untuk halaman XHTML. Penukar menjalankan DOM ini secara rekursif. Untuk setiap elemen ia mencipta objek JSON: atribut menjadi kunci yang diawali dengan @ (cth., @id, @class); elemen anak elemen diulang ke dalam struktur yang sama; kandungan teks, apabila hadir bersama kanak-kanak, hidup di bawah kunci #teks.
Elemen anak berulang dengan nama teg yang sama dikumpulkan ke dalam tatasusunan JSON. Anak tunggal dari nama yang diberikan muncul sebagai nilai objek; berbilang kanak-kanak muncul sebagai susunan objek. Konvensyen ini berfungsi dengan baik dalam amalan tetapi bermakna bentuk JSON bergantung pada sama ada elemen muncul sekali atau beberapa kali — ketidaksempurnaan pemetaan XML-ke-JSON yang diketahui.
Ruang nama dikekalkan sebagai sebahagian daripada nama unsur (awalan:localName). Arahan pemprosesan dan bahagian CDATA ditukar kepada kandungan teks. Pengisytiharan XML dan DOCTYPE dilucutkan daripada output JSON tetapi tidak menjejaskan data.