XML ke JSON

Berjalan di perangkat Anda · File Anda tidak pernah meninggalkan perangkat.

Taruh file .xml atau tempel XML dari API, feed, atau file konfigurasi dan dapatkan JSON yang siap dipakai. Dokumen dibaca oleh parser XML bawaan browser, dalam encoding yang dideklarasikan baris pertamanya, jadi apa pun yang well-formed bisa dikonversi, dan file yang rusak dilaporkan dengan baris dan kolom masalahnya serta apa yang salah di sana.

Pemetaannya tetap dan bisa dibalik: setiap elemen menjadi kunci; elemen sejajar bernama sama menjadi array; atribut disimpan di kunci berawalan @ (id="A3" menjadi "@id": "A3"); dan kalau sebuah elemen berisi teks sekaligus anak atau atribut, teksnya masuk ke "#text". Elemen yang hanya berisi teks menjadi nilainya langsung.

Dengan pengenalan tipe menyala, teks seperti 12, true, atau elemen kosong menjadi angka, boolean, atau null; matikan untuk menjaga semuanya sebagai teks. Nama bernamespace (soap:Body) dipertahankan apa adanya. Pratinjau menampilkan 200 baris pertama sebelum Anda mengunduh.

Cara XML ke JSON

  1. Taruh file XML, atau tempel XML ke kotak.
  2. Tentukan apakah angka, boolean, dan elemen kosong perlu dikenali.
  3. Klik «Konversi ke JSON» dan periksa pratinjaunya.
  4. Unduh file .json.

Format yang didukung dan batasan

Masukan
XML (.xml), file atau teks yang ditempel, dalam encoding yang dideklarasikannya
Keluaran
JSON, rapi berindentasi, UTF-8
Atribut
Disimpan sebagai kunci "@nama"
Elemen berulang
Menjadi array
Berjalan di
Di browser – tanpa unggah

Tidak cocok untuk: Dokumen yang bukan XML well-formed (tag tidak ditutup, halaman HTML): parser melaporkan masalah pertamanya, bukan menebak.

Nilai mana yang berubah tipe

Pengenalan tipe berlaku untuk atribut maupun teks, dan hanya mengubah nilai kalau tidak ada yang hilang. Dengan sakelar menyala, id="3" menjadi "@id": 3, sedangkan id="007" tetap teks "007". 1.50 juga tetap teks, karena sebagai angka akan tertulis kembali sebagai 1.5. TRUE menjadi true. Elemen kosong seperti <note/>, dan elemen yang hanya berisi spasi, menjadi null; kata NULL tetap teks. Tanggal seperti 2024-01-05 tidak pernah dikonversi.

Dengan pengenalan tipe mati, elemen kosong menjadi "" dan setiap nilai tetap teks persis seperti ditulis.

Apa yang tidak bisa disimpan JSON

Sebagian isi dokumen XML tidak punya tempat di JSON dan dibuang: komentar, processing instruction, dan DOCTYPE. Bagian CDATA menjadi teks biasa, jadi <a><![CDATA[<b>x</b>]]></a> memberi "a": "<b>x</b>".

Urutan antara elemen yang namanya berbeda hilang, karena setiap nama menjadi satu kunci. Pada <step>1</step><note/><step>2</step>, kedua step dikumpulkan menjadi "step": [1, 2], dan tidak ada yang mencatat bahwa note tadinya berada di antara keduanya. Teks yang bercampur dengan markup kehilangan posisinya dengan cara yang sama: <p>Hello <b>world</b> and <i>you</i>!</p> menjadi "b": "world", "i": "you", dan "#text": "Hello and !". Untuk dokumen yang isinya justru urutan itu, seperti teks berformat, pemetaan ini tidak cocok.

Namespace, entitas, galat, dan encoding

Nama berawalan dipertahankan seperti ditulis, dan deklarasi namespace muncul sebagai atribut: <soap:Envelope xmlns:soap="…"> memberi kunci "soap:Envelope" yang berisi "@xmlns:soap", dan /json-to-xml mengubah keduanya kembali menjadi XML yang sama.

Selain entitas yang didefinisikan DOCTYPE dokumen itu sendiri, hanya lima entitas bawaan XML (&amp; &lt; &gt; &quot; &apos;) dan entitas angka seperti &#160; yang dipahami. Saat parser berhenti, pesannya menyebutkan baris dan kolom serta menjelaskan dengan kata-kata sederhana apa yang salah: elemen yang ditutup dengan nama lain, nama yang tidak dikenal seperti &nbsp; (tulis &#160; sebagai gantinya), & atau < yang berdiri sendiri, elemen kedua di tingkat atas, atau file yang berakhir terlalu cepat.

File dibaca dalam encoding yang dideklarasikan baris pertamanya, misalnya ISO-8859-1 atau windows-1256. Tanpa deklarasi, UTF-8 atau UTF-16 yang dibaca, dan code page lama dikenali seperti yang dijelaskan di /csv-to-json.

Pertanyaan umum

Apakah file saya diunggah ke server?
Tidak. Konversi berjalan sepenuhnya di browser, memakai tenaga perangkat Anda sendiri. File tidak pernah meninggalkan HP atau laptop Anda. Setelah sebuah alat dipakai sekali, alat itu tetap bekerja tanpa internet: alat video, pengenal teks, dan penghapus latar mengunduh mesinnya dari situs ini pada pemakaian pertama, lalu browser menyimpannya.
Atribut dan isi campuran ditangani bagaimana?
Atribut menjadi kunci berawalan @, jadi <item id="A3"> memberi "@id": "A3". Kalau elemen punya teks sekaligus atribut atau elemen anak, teksnya disimpan di "#text"; elemen yang hanya teks langsung menjadi teks itu.
Kenapa satu elemen jadi objek dan yang berulang jadi array?
Elemen yang muncul sekali di bawah induknya menjadi objek (atau nilai); dua elemen sejajar atau lebih dengan nama sama menjadi array. Itu mencerminkan dokumennya persis, jadi daftar berisi satu item adalah satu objek; kalau kode Anda butuh array di kedua kasus, bungkus di sisi penerima.
Bagian atas JSON-nya seperti apa?
Satu kunci bernama elemen root, yang menampung semua isinya: <records>…</records> menjadi {"records": {...}}. Nama root dipertahankan supaya alat JSON ke XML bisa membangun ulang dokumen yang sama.

Alat terkait

Lainnya di Lembar kerja dan data

Halaman ini dalam bahasa lain: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · বাংলা