JSON ke XML

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

Tempel atau taruh JSON dan dapatkan dokumen XML dengan deklarasi di atas dan satu elemen per kunci. Dokumen dengan satu kunci di tingkat atas memakai kunci itu sebagai elemen root; selain itu semuanya masuk ke dalam <root>. Daftar menjadi elemen berulang yang dinamai sesuai kuncinya ("items": [..] memberi beberapa elemen <items>), dan daftar di tingkat atas menjadi elemen <item> di bawah <root>.

Kunci yang diawali @ menjadi atribut dan kunci "#text" menjadi teks elemennya, bentuk yang ditulis alat XML ke JSON, jadi dokumen yang dikonversi di sana kembali di sini sebagai XML yang sama. Nilai lainnya ditulis sebagai teks di dalam elemennya, null menjadi elemen kosong, dan dokumen diindentasi dua spasi per tingkat. Kunci yang tidak boleh jadi nama XML (diawali angka, berisi spasi atau simbol) dibersihkan dengan garis bawah supaya hasilnya selalu bisa diparse.

Teks di-escape dengan benar (&, <, > dan, di dalam atribut, tanda kutip serta baris baru); karakter kontrol, yang sama sekali tidak bisa dimuat XML 1.0, dibuang. Encoding-nya UTF-8, dan Anda melihat 200 baris pertama sebelum mengunduh. Tidak ada yang diunggah.

Cara JSON ke XML

  1. Taruh file JSON, atau tempel JSON ke kotak.
  2. Klik «Konversi ke XML».
  3. Periksa pratinjau dan unduh file .xml.

Format yang didukung dan batasan

Masukan
JSON (.json), file atau teks yang ditempel
Keluaran
XML 1.0, UTF-8, deklarasi di atas, rapi berindentasi
Root
Satu-satunya kunci di tingkat atas, selain itu <root>; daftar di tingkat atas menjadi elemen <item>
Daftar
Elemen berulang yang dinamai sesuai kuncinya
Berjalan di
Di browser – tanpa unggah

Tidak cocok untuk: Mencocokkan skema XML tertentu (SOAP, RSS, standar e-Faktur): nama elemen mengikuti kunci JSON Anda, bukan skema.

Bagaimana kunci Anda menjadi nama elemen

Kunci yang diawali @ menjadi atribut dan kunci "#text" menjadi teks elemennya, jadi {"item": {"@id": 3, "#text": "A"}} memberi <item id="3">A</item>. Kalau dokumen hanya punya satu kunci di tingkat atas, kunci itu menjadi elemen root; selain itu semuanya masuk ke dalam <root>.

Karakter yang tidak diizinkan XML dalam nama menjadi garis bawah, dan nama yang diawali karakter yang tidak boleh berada di depan, misalnya angka, diberi garis bawah di depannya: "1st place" menjadi <_1st_place>. Titik dua hanya dipertahankan kalau awalannya dideklarasikan di tingkat yang lebih atas, seperti pada "@xmlns:soap"; "soap:Body" yang tidak dideklarasikan menjadi <soap_Body>, karena kalau tidak, tidak ada parser yang memahami namespace yang mau membacanya. Huruf dari aksara apa pun diizinkan, jadi kunci seperti "اسم" atau "名前" tetap seperti ditulis.

Seperti apa nilainya

Setiap nilai ditulis sebagai teks, dan angka persis seperti di JSON: 1.0 tetap 1.0 dan 12345678901234567890 mempertahankan semua digitnya. null dan objek kosong sama-sama menjadi elemen kosong seperti <note/>, dan daftar kosong tidak menulis apa pun, jadi dari XML-nya ketiga hal ini tidak bisa dibedakan.

Karakter kontrol, yaitu kode di bawah 32 selain tab, line feed, dan carriage return, sama sekali tidak bisa ditulis di XML 1.0, bahkan sebagai angka seperti &#1;, jadi karakter itu dibuang. Carriage return ditulis sebagai &#13; supaya parser mempertahankannya. Di dalam nilai atribut, tanda kutip, tab, dan baris baru juga ditulis sebagai referensi, karena kalau tidak parser akan mengubahnya menjadi spasi.

Daftar di dalam daftar kehilangan pengelompokannya

Elemen berulang hanya bisa menyatakan satu tingkat daftar. "m": [[1, 2], [3]] menjadi tiga elemen <m> berisi 1, 2, dan 3, dan informasi bahwa 1 dan 2 tadinya satu kelompok hilang. Daftar di tingkat atas berperilaku sama: [1, [3, 4]] memberi tiga elemen <item>. Kalau pengelompokannya penting, bungkus dulu setiap daftar dalam di sebuah objek: [{"values": [1, 2]}, {"values": [3]}] memberi dua elemen <item>, masing-masing berisi <values> sendiri.

Dari XML ke JSON lalu kembali lagi

Dokumen yang sudah melewati /xml-to-json kembali sebagai elemen, atribut, awalan namespace, dan teks yang sama, tanpa pembungkus tambahan di sekelilingnya. Yang tidak pernah disimpan JSON tidak kembali: komentar dan DOCTYPE, posisi teks di antara elemen anak, serta urutan antara elemen yang namanya berbeda, yang kembali dalam keadaan dikelompokkan menurut nama. Kalau pengenalan tipe menyala di /xml-to-json, nilai seperti TRUE kembali sebagai true; matikan pengenalan tipe di sana untuk bolak-balik yang persis kata demi kata.

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.
Daftar ditulis bagaimana?
Sebagai elemen berulang. {"items": [1, 2]} menjadi <items>1</items><items>2</items>. Daftar di paling atas dokumen menjadi elemen <item> di dalam <root>. Daftar kosong tidak menghasilkan elemen sama sekali.
Bagaimana dengan kunci yang berisi spasi atau angka?
Nama elemen XML tidak boleh diawali angka atau berisi spasi. Kunci seperti itu dibersihkan: "1st place" menjadi _1st_place, "harga satuan" menjadi harga_satuan. Sisanya dibiarkan apa adanya.
Bisa dapat atribut, bukan elemen anak?
Bisa: beri @ di depan kuncinya. {"item": {"@id": 3, "name": "A"}} memberi <item id="3"><name>A</name></item>. Itu bentuk yang ditulis alat XML ke JSON, jadi bolak-balik antara keduanya mengembalikan 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 · עברית · فارسی · اردو · বাংলা