AI di perangkat — profesional dan privat.

Konverter JSON ke XML

JSON ke XML dalam hitungan detik — keluaran sah, tanpa unggah.

  • Berjalan di perangkat Anda
  • Membaca JSON, JSON Lines, dan NDJSON
  • Urutan kunci dan ketelitian angka persis
  • Satu berkas gratis · Kumpulan dan XSD dengan Pro

Letakkan berkas JSON

JSON, JSON Lines, NDJSON, GeoJSON, atau .txt berisi JSON — hingga 10.0 MB

Pratinjau XML
Pro
Tempel JSON atau letakkan berkas untuk melihat XML-nya.
Konversi
Struktur
Penamaan item array
Kunci yang bukan nama XML
Nilai
Nilai null

Kunci yang ditulis @id menjadi atribut; #text menjadi teks elemen.

Anotasi tipe

Menambahkan type="number", type="string", atau type="boolean" pada setiap elemen.

Pro

Hilangkan berlaku untuk anggota objek. Item array selalu ditulis — posisinya adalah informasi.

Namespace
Pro
Keluaran
Pengodean
Indentasi

Cara mengonversi JSON ke XML

  1. 1

    Tempel atau letakkan JSON Anda

    Tempel JSON ke kotak, atau letakkan berkas .json, .jsonl, .ndjson, .geojson, atau .txt. JSON Lines terdeteksi sendiri — Anda tidak perlu mengganti mode.

  2. 2

    Namai akar dan elemen berulang

    Tentukan elemen teratas (root secara bawaan). Pilih apakah semua item array bernama item, dinamai dari kunci tempat array itu berada, atau dari bentuk tunggalnya — sehingga books menjadi book.

  3. 3

    Tentukan cara nilai ditulis

    Pilih apa yang terjadi pada null: elemen kosong, xsi:nil, atau tidak ditulis sama sekali. Aktifkan pemetaan atribut jika kunci Anda memakai konvensi @nama dan #text. Pilih indentasi, deklarasi, dan pengodean keluaran.

  4. 4

    Konversi, lalu unduh atau salin

    Klik Konversi ke XML. Pratinjau diperbarui setiap kali Anda mengubah pengaturan, jadi Anda melihat bentuknya sebelum mengekspor. Unduh .xml, salin, atau hasilkan skema .xsd yang sepadan.

Apa yang ditawarkan alat JSON ke XML ini

Konverter gratis ini mengubah JSON menjadi XML yang well-formed, di perangkat Anda. Tempel atau letakkan berkas, namai elemen akar dan elemen berulang yang dihasilkan sebuah array, tentukan apa yang terjadi pada null dan pada kunci yang tidak bisa dipakai, lalu ekspor. Pratinjau diperbarui setiap kali Anda mengubah pengaturan, jadi Anda melihat bentuknya sebelum memutuskan. JSON yang tidak valid menampilkan masalahnya, baris dan kolomnya, serta cuplikan — plus tautan ke Pemformat dan Validator JSON.

  • Elemen akar — Tag teratas yang membungkus dokumen — root, data, response, nama XML valid apa pun. Nama yang tidak valid diperbaiki dan perubahannya ditampilkan kepada Anda, bukan diterapkan diam-diam.
  • Penamaan item array — Tag tetap untuk setiap array, kunci tempat array itu berada, atau bentuk tunggal kunci itu — sehingga array books menulis elemen book, seperti yang akan ditulis orang secara manual.
  • Atribut dan teks — Aktifkan konvensi @nama dan #text, lalu kunci yang ditulis @id menjadi atribut XML sementara #text menjadi teks elemen. Ini pasangan persis dari alat XML ke JSON.
  • Null, kosong, dan tidak ada — Sebuah null JSON bisa menjadi elemen kosong, elemen xsi:nil yang dipahami skema, atau tidak ditulis sama sekali. Tiga makna yang benar-benar berbeda, sementara kebanyakan konverter menawarkan satu.
  • Detail kesalahan — JSON tidak valid menampilkan pesan, baris dan kolom, serta cuplikan dengan posisi yang ditandai. Kunci ganda juga dilaporkan, karena sah dan ambigu.

Bagaimana JSON dipetakan ke XML

JSON punya enam jenis nilai dan XML punya elemen, atribut, dan teks. Pemetaannya langsung, dan satu-satunya keputusan adalah yang ditampilkan oleh pengaturan.

  • Objek menjadi elemen bersarang — Setiap kunci menjadi elemen anak dengan namanya, sesuai urutan kemunculan kunci di sumbernya.
  • Array menjadi elemen berulang — Sebuah array tidak menjadi satu elemen berisi daftar; ia menjadi elemen yang sama, ditulis sekali per entri — begitulah XML selalu mengeja nilai berulang.
  • String, angka, dan boolean menjadi teks — XML tidak punya tipe khusus untuk ketiganya, jadi masing-masing ditulis sebagai isi teks. Dengan anotasi tipe, setiap elemen juga membawa type="number", type="string", atau type="boolean".
  • Angka disalin, bukan dihitung ulang — Digit yang Anda tulis adalah digit yang keluar. Id dua puluh digit tetap persis, -0 tetap -0, dan 1e-7 tetap 1e-7 — tidak satu pun bertahan setelah melewati nilai floating point.
  • Akar harus dibuat — JSON boleh punya array atau bahkan string telanjang di tingkat teratas; XML harus punya tepat satu elemen akar. Itulah yang dinamai oleh pengaturan elemen akar.

Mengapa pretty print tidak boleh menyentuh nilai Anda

Ini satu hal yang paling sering salah pada konverter JSON ke XML, dan tidak terlihat di keluarannya. XML tidak bisa menandai spasi sebagai hiasan — setiap karakter di antara tag sebuah elemen adalah bagian dari nilainya. Jadi elemen yang isinya teks tidak bisa diberi indentasi tanpa mengubah maknanya.

  • Kegagalannya — Ditulis secara naif, array ["a","b"] menjadi elemen item dengan baris baru sebelum a dan baris baru plus dua spasi sesudahnya. Dibaca kembali oleh parser mana pun yang patuh, nilai itu bukan "a" — melainkan baris baru, a, baris baru, dan dua spasi.
  • Akibatnya — Mengaktifkan pretty print mengubah data, dan keluaran ringkas serta keluaran berindentasi dari konverter yang sama berbeda arti. Tidak ada yang error dan tidak ada yang terlihat salah.
  • Aturan di sini — Spasi hanya ditambahkan di dalam elemen bila semua anaknya adalah elemen lain. Elemen yang memuat teks apa pun ditulis dalam satu baris, pada setiap pengaturan indentasi. Perjalanan bolak-balik melalui dua parser XML independen adalah bagian dari rangkaian uji alat ini.

Atribut dan teks: konvensi @ dan #text

JSON tidak punya atribut, jadi konverter memerlukan konvensi untuk menghasilkannya. Alat ini memakai konvensi yang sudah dipakai pustaka XML-ke-JSON: kunci yang diawali @ menjadi atribut pada elemen yang memuatnya, dan kunci #text menjadi isi teksnya. Nonaktif secara bawaan, karena data Anda boleh saja memakai kunci-kunci itu secara sah.

  • Apa yang dihasilkan — {"@id": "7", "name": "Ada"} menjadi elemen yang membawa id="7" dengan anak name, bukan dua elemen anak yang salah satunya bernama _id.
  • Bolak-balik — Ini konvensi yang dibaca alat XML ke JSON di situs ini, jadi dokumen yang dikonversi bolak-balik tetap sama bentuknya.
  • Ketika sebuah nilai tidak bisa jadi atribut — Atribut memuat teks datar. Objek atau array di bawah kunci @ ditulis sebagai elemen anak biasa — tidak pernah dibuang, tidak pernah dijejalkan sebagai gumpalan JSON di dalam XML Anda — dan jumlahnya ditampilkan.
  • Isi campuran — Jika sebuah elemen berakhir memuat teks sekaligus elemen anak, seluruh elemen ditulis dalam satu baris. Hanya itu cara menjaga teksnya tetap persis; lihat bagian di atas.

Null, objek kosong, dan array kosong

"Tidak ada nilai" punya beberapa makna di JSON dan beberapa ejaan di XML, dan memilih di antaranya menentukan apakah skema bisa memvalidasi dokumen itu atau tidak.

  • Elemen kosong — Bawaannya. Sebuah null menjadi elemen tanpa isi, bentuk yang diharapkan kebanyakan penerima.
  • xsi:nil — Menulis elemen sebagai nil, dan mendeklarasikan namespace schema-instance pada akar. Ini satu-satunya ejaan yang bisa dibedakan penerima dari "pengekspor lupa bidang ini", dan inilah yang diharapkan XSD.
  • Dihilangkan — Elemennya sama sekali tidak ditulis. Ini hanya berlaku untuk anggota objek — item null di dalam array tetap ditulis, karena panjang array adalah informasi dan menghapus satu item diam-diam menggeser setiap indeks sesudahnya.
  • Objek dan array kosong — Keduanya menjadi elemen kosong. Array kosong tidak menghasilkan baris kosong di antara dua tag, yang justru dikeluarkan penulis naif.

Menamai elemen yang dihasilkan sebuah array

Setiap konverter pesaing menulis item untuk setiap array di dokumen, dan dengan itu kehilangan satu-satunya informasi yang dibawa array tersebut: apa isinya. Ada tiga opsi di sini, dan yang ketiga tidak ditawarkan siapa pun.

  • Tag tetap — Setiap item array mendapat tag yang Anda ketik — item secara bawaan. Mudah ditebak, dan itulah yang diharapkan penerima yang ditulis untuk konverter lain.
  • Kunci induk — Item dinamai dari kunci tempat array itu berada, sehingga array books menghasilkan elemen books di dalam elemen books.
  • Bentuk tunggal kunci induk — books menghasilkan book, categories menghasilkan category, children menghasilkan child. Inilah yang akan ditulis orang secara manual. Bila kata itu tidak bisa dipendekkan, tag tetap yang dipakai, alih-alih menyarangkan sebuah nama di dalam dirinya sendiri.
  • Array di tingkat akar — Array di puncak dokumen tidak punya kunci untuk menamainya, jadi nama elemen akar dipakai sebagai induk.

Deklarasi, indentasi, dan pengodean keluaran

Tiga pengaturan yang menentukan tampilan berkas, bukan isinya. Yang soal pengodean layak dibaca: itulah pengaturan yang paling sering diterapkan sebagai label, bukan sebagai fakta.

  • Deklarasi XML — Aktif secara bawaan. Ia menyebutkan versi dan pengodean, dan penerima yang membacanya akan memercayainya — karena itu byte-nya harus cocok.
  • Indentasi — Dua spasi, empat spasi, tab, atau tidak sama sekali. Tanpa indentasi seluruh dokumen berada dalam satu baris, yang Anda inginkan bila penerimanya program dan bukan manusia.
  • UTF-8 — Bawaannya, dan hampir selalu jawaban yang benar. Ditulis tanpa byte order mark, karena deklarasinya sudah menyatakan itu dan tanda tersebut merusak penerima yang mengharapkan berkas dimulai dengan tanda kurung sudut.
  • UTF-16 — Ditulis sebagai byte UTF-16 sungguhan dengan byte order mark, karena dokumen UTF-16 tanpa tanda itu tidak terdeteksi dengan andal dan ditolak beberapa parser.
  • ISO-8859-1 — Benar-benar dikodekan sebagai Latin-1. Setiap karakter yang tidak muat dalam pengodean itu lebih dulu ditulis sebagai referensi karakter numerik, yang merupakan XML sah dan tidak kehilangan apa pun — sehingga dokumen yang menyatakan ISO-8859-1 memang benar-benar begitu. Konverter yang hanya menulis labelnya lalu tetap mengeluarkan UTF-8 menghasilkan berkas yang salah dengan cara yang tak terdeteksi validator mana pun.

JSON Lines dan NDJSON

Satu nilai JSON per baris, tanpa array pembungkus. Inilah yang dikeluarkan pipeline log, ekspor massal API, dan dump gudang data, dan parser JSON standar menolaknya mentah-mentah — sehingga kebanyakan konverter justru tidak bisa membuka berkas yang paling sering dimiliki orang.

  • Dideteksi, bukan dinyalakan — Letakkan berkas .jsonl atau .ndjson dan ia dikenali. Berkas .json atau .txt yang ternyata berisi satu nilai per baris juga dikenali, karena ekstensi adalah petunjuk, bukan janji.
  • Apa yang dihasilkan — Setiap baris menjadi satu elemen berulang di bawah akar, persis seolah baris-baris itu adalah sebuah array. Semua pengaturan array berlaku seperti biasa.
  • Baris kosong diabaikan — Baris baru di akhir berkas itu lazim dan bukan kesalahan. Baris lain yang bukan JSON sah akan melaporkan nomor barisnya, satu-satunya koordinat yang bermakna dalam format ini.

Menghasilkan XSD dari dokumen Anda

JSON tidak punya skema, jadi XSD harus disimpulkan dari dokumennya sendiri. Yang ini dikumpulkan sembari XML ditulis, bukan lewat pembacaan kedua atas JSON-nya, sehingga ia hanya bisa menggambarkan elemen yang benar-benar dihasilkan, dengan nama yang benar-benar diberikan.

  • Kardinalitas berasal dari datanya — Elemen anak yang absen pada salah satu instans induknya ditandai opsional. Anak yang muncul lebih dari sekali dalam satu instans ditandai tak terbatas.
  • Tipe dipersempit hanya bila pasti — Sebuah elemen bertipe integer hanya bila semua nilai yang terlihat memang bilangan bulat dalam teks sumbernya — termasuk yang terlalu panjang untuk bertahan sebagai bilangan floating point. Satu desimal saja sudah melebarkannya.
  • Ambiguitas melebarkan, bukan menebak — Elemen yang terlihat memuat teks sekaligus anak ditandai mixed; yang terlihat sebagai wadah sekaligus nilai sederhana dibiarkan terbuka. Skema yang menolak berkas asalnya lebih buruk daripada tidak ada skema.
  • Namespace-nya sejalan — Namespace tujuan hanya dideklarasikan bila dokumennya sendiri ditulis ke dalam satu namespace, karena skema yang mendeklarasikan namespace yang tidak dipakai instansnya tidak memvalidasi apa pun.

Mengapa mengonversi JSON ke XML?

Banyak sistem masih berbahasa XML dan tidak mau yang lain. Mengonversi memungkinkan Anda memakai ulang data yang sudah ada dalam JSON tanpa menulis ulang penghasilnya, dan biasanya itu langkah termurah dalam sebuah integrasi.

  • Integrasi enterprise dan SOAP — Layanan SOAP, gateway EDI, dan ERP lama hanya menerima XML. Muatan yang sudah dikonversi sering kali adalah seluruh pekerjaannya.
  • Berkas konfigurasi dan build — Ant, Maven, Spring, layout Android, dan konfigurasi .NET semuanya XML. Data yang dihasilkan sebagai JSON harus tiba dalam bentuk itu.
  • Validasi skema — XML punya XSD, yang memungkinkan sistem penerima menolak muatan yang cacat sebelum melakukan apa pun dengannya. JSON Schema ada, tetapi jauh lebih sedikit sistem yang menegakkannya.
  • Dokumen, bukan data — XML menangani isi campuran — teks dengan markup di dalamnya — yang sama sekali tidak bisa diungkapkan JSON. Karena itulah format penerbitan berupa XML.
  • Privasi — Konversinya berjalan di perangkat Anda. Tidak ada bagian muatan yang keluar dari sana, dan itu penting ketika muatannya adalah data pelanggan dan alternatifnya adalah menempelkannya ke server orang lain.

Berkas JSON 9 MB menjadi 17,8 MB XML dalam sekitar enam persepuluh detik, tanpa membuat halaman membeku.

Ringkasan opsi

  • Elemen akar — Satu-satunya tag teratas. Harus berupa nama XML yang sah; yang tidak sah diperbaiki dan perubahannya ditampilkan.
  • Tag item array — Nama elemen untuk setiap item array ketika mode penamaan disetel ke tag tetap.
  • Penamaan item array — Tag tetap, kunci induk, atau bentuk tunggal kunci induk.
  • Penanganan kunci tidak valid — Perbaiki kunci menjadi nama XML yang sah, atau simpan teks aslinya dalam atribut name.
  • Nilai null — Elemen kosong, xsi:nil, atau dihilangkan dari dokumen.
  • Pemetaan atribut — Perlakukan kunci @ sebagai atribut dan #text sebagai teks elemen.
  • Anotasi tipe — Menambahkan type="number", type="string", atau type="boolean" pada setiap elemen. Pro.
  • Namespace dan prefiks — URI namespace tujuan untuk dokumen, diikat sebagai bawaan atau ke sebuah prefiks. Pro.
  • Deklarasi XML — Apakah baris versi dan pengodean ditulis di bagian atas.
  • Pengodean keluaran — UTF-8, UTF-16, atau ISO-8859-1 — dinyatakan dan benar-benar dikodekan.
  • Indentasi — Dua spasi, empat spasi, tab, atau satu baris ringkas.
  • Nama berkas — Dasar nama untuk .xml dan .xsd yang diunduh.

Gratis dan Pro

Semua yang menentukan benar atau tidaknya konversi bersifat gratis. Paket menentukan berapa banyak yang bisa Anda proses sekaligus dan apakah fitur tambahannya ikut.

  • Gratis — Satu berkas sekali jalan, hingga 10 MB — kira-kira empat puluh ribu catatan dari ekspor tipikal. Semua pengaturan struktur, semua mode penamaan, semua kebijakan null, pemetaan atribut, keempat indentasi, dan ketiga pengodean.
  • Pro — Tanpa batas ukuran yang dipaksakan — sebatas kemampuan perangkat Anda. Hingga 50 berkas dikonversi sekali tekan dan diunduh sebagai satu ZIP, plus pembuatan XSD, namespace tujuan, dan anotasi tipe.
  • Apa yang didapat berkas yang ditolak — Ukuran sebenarnya, batasnya, dan tautan ke minifier JSON, yang memang langkah pertama yang benar untuk berkas yang kelebihan beberapa megabyte. Bukan bilah kemajuan yang lalu gagal.

Pertanyaan umum

Bagaimana konverter JSON ke XML ini bekerja?

Tempel atau letakkan JSON, tentukan nama elemen akar dan tag untuk item array, lalu pilih keluaran terformat atau satu baris. Setelah menekan Konversi ke XML, objek menjadi elemen bersarang, array menjadi elemen berulang, dan nilai sederhana menjadi teks, dengan deklarasi XML di bagian atas. Semuanya berjalan di perangkat Anda — JSON tidak dikirim ke mana pun.

Apakah data JSON saya aman?

Ya. Tidak ada yang disimpan atau dicatat. Setelah halaman dimuat, Anda bisa memutus koneksi internet dan tetap mengonversi, yang aman untuk data sensitif atau milik perusahaan.

Apa fungsi opsi elemen akar dan tag item array?

Elemen akar adalah satu-satunya tag XML teratas yang membungkus seluruh dokumen (root secara bawaan); Anda bisa menamainya apa saja asal valid, seperti data atau response. Array JSON menjadi elemen XML berulang, dan tag item array menentukan namanya (item secara bawaan). Anda juga bisa menamainya dari kunci tempat array berada atau bentuk tunggalnya, sehingga array books menulis elemen book.

Bagaimana objek, array, dan karakter khusus dipetakan ke XML?

Objek menjadi elemen bersarang dengan nama kuncinya, array menjadi elemen berulang, dan string, angka, serta boolean menjadi isi teks. Dengan pemetaan atribut aktif, kunci yang ditulis @id menjadi atribut dan kunci #text menjadi teks elemen. Karakter seperti &, < dan > di-escape, sedangkan karakter yang sama sekali tidak bisa diwakili XML — kode kontrol C0 dan surrogate tunggal — dihapus, dengan jumlahnya ditampilkan.

Apakah pretty print mengubah data saya?

Tidak. Spasi hanya ditambahkan di dalam elemen yang isinya seluruhnya elemen lain. Elemen yang memuat teks ditulis dalam satu baris pada setiap pengaturan indentasi, karena XML tidak bisa menandai spasi sebagai hiasan: memberi indentasi pada simpul teks mengubah nilai yang dibaca kembali oleh parser. Banyak konverter salah di sini, sehingga keluaran terformat dan keluaran ringkasnya berbeda arti.

Apakah urutan kunci dan angka panjang dipertahankan?

Ya, keduanya. Kunci ditulis sesuai urutan sumbernya, termasuk yang terlihat numerik seperti "2024", yang oleh sebagian besar konverter diam-diam dipindahkan ke depan. Angka disalin apa adanya, sehingga id dua puluh digit tetap persis dan 1e-7 tetap 1e-7, bukan dibulatkan lewat nilai floating point.

Apa yang terjadi pada kunci yang bukan nama XML valid?

Kunci seperti "first name" atau "2024" tidak bisa menjadi nama elemen XML. Anda yang memilih: memperbaikinya menjadi nama valid (first_name, _2024) dan melihat daftar setiap penggantian, atau menyimpan teks aslinya apa adanya dalam atribut name. Kunci beraksen dan beraksara non-Latin seperti Führung atau 名前 sudah merupakan nama XML valid dan tetap dipertahankan.

Bagaimana jika JSON saya tidak valid?

Anda mendapat masalahnya secara persis, baris dan kolomnya, serta cuplikan dengan posisi yang ditandai, plus tautan ke Pemformat dan Validator JSON untuk memperbaiki sintaksnya sebelum mengonversi lagi. Kunci ganda juga dilaporkan — itu JSON yang sah tetapi ambigu, dan kebanyakan alat menyimpan yang terakhir tanpa memberi tahu Anda.

Apakah konverternya gratis, dan bekerja di ponsel serta offline?

Ya, sepenuhnya gratis untuk satu berkas sekali jalan hingga 10 MB, dan bekerja di peramban modern mana pun termasuk ponsel dan tablet, offline setelah dimuat. Pro menghapus batas ukuran hingga sebatas kemampuan perangkat Anda, mengonversi hingga 50 berkas menjadi satu ZIP, serta menambahkan pembuatan XSD, namespace, dan anotasi tipe.

4.8dari 5

dari 85 penilaian

Beri nilai alat ini

Ketuk bintang — hanya sebentar