Konverter JSON dan XML

Berjalan di browser Anda; tidak ada yang diunggah

Konversi JSON ke XML atau XML ke JSON, dengan aturan yang jelas untuk atribut, elemen berulang, dan namespace.

Input · JSON

Output · XML

Converted XML appears here as you type.

Ready
Ln 1, Col 1

JSON dan XML di API

JSON dan XML sama-sama mendeskripsikan data terstruktur sebagai teks. JSON punya object, array, dan nilai bertipe seperti angka dan boolean. XML punya elemen bersarang, atribut, dan teks, dan semuanya teks kecuali schema menyatakan lain. Web service SOAP, feed RSS dan Atom, serta banyak sistem bank, pembayaran, dan pemerintahan masih memakai XML, jadi aplikasi berbasis JSON sering harus menerjemahkan.

Kedua format tidak bisa dipetakan satu banding satu, jadi konverter ini mengikuti konvensi umum yang bisa dibalik. Elemen menjadi key dan teksnya menjadi nilai. Atribut menjadi key yang diawali @, seperti @id. Jika elemen punya atribut atau elemen anak selain teks, teksnya masuk ke #text. Elemen yang berulang menjadi array. Prefix namespace dipertahankan seperti ditulis, jadi <soap:Body> menjadi "soap:Body" dan deklarasinya menjadi "@xmlns:soap".

XML tidak punya tipe, jadi secara default semuanya tetap string: <zip>007</zip> menghasilkan "007" dan <id>7</id> menghasilkan "7". Aktifkan Numbers untuk membaca nilai yang ditulis persis seperti angka JSON, serta true dan false, sebagai nilai bertipe (007 tetap teks). Untuk arah sebaliknya, elemen root diambil dari satu-satunya key tingkat atas di JSON, atau dari Root name jika ada beberapa.

Cara memakai tool ini

  1. 1Pilih JSON → XML atau XML → JSON di toolbar. Tempel data ke panel Input, seret file ke sana, atau tekan Ctrl+O untuk membuka file (hingga 5 MB).
  2. 2Baca hasilnya di panel Output; hasil diperbarui saat Anda mengetik. Catatan di atas output menjelaskan apa yang harus diubah oleh konversi, seperti key yang diganti namanya atau komentar yang dihilangkan.
  3. 3Untuk XML → JSON, pilih Always arrays agar setiap elemen anak menjadi array (lebih mudah dibaca dari kode) dan Numbers untuk mengonversi angka dan boolean. Untuk JSON → XML, atur Root name dan apakah output diawali deklarasi XML.
  4. 4Jika input tidak valid, panel output memberi baris dan kolomnya; tekan F8 untuk menaruh kursor di masalahnya.
  5. 5Swap (Shift+Alt+S) memindahkan output ke input dan membalik arahnya, untuk mengecek konversi bolak-balik. Salin hasilnya, atau unduh dengan Ctrl+S.

Pemecahan masalah

Diharapkan </item> untuk menutup elemen yang dibuka di baris 3
Tag harus ditutup dalam urutan terbalik dari saat dibuka, dengan nama dan huruf besar-kecil yang sama. Periksa elemen yang disebut di pesan: apakah tag penutupnya hilang atau salah ketik.
& yang berdiri sendiri harus ditulis &amp;
Di teks dan atribut XML, & memulai sebuah entity. Tulis &amp; untuk ampersand, &lt; untuk <, atau bungkus teksnya dalam <![CDATA[ ... ]]>.
Entity tidak dikenal &nbsp;
Yang didefinisikan hanya lima entity XML (&lt; &gt; &amp; &quot; &apos;) dan referensi karakter seperti &#160;. &nbsp; berasal dari HTML; gunakan &#160; sebagai gantinya.
Elemen root kedua: XML hanya punya satu
Dokumen XML harus punya satu elemen tingkat atas. Bungkus elemen-elemen itu dalam satu elemen induk.
Key berganti nama di output XML
Nama XML tidak boleh berisi spasi atau sebagian besar tanda baca, dan tidak boleh diawali angka, jadi first name menjadi <first_name> dan 2fa menjadi <_2fa>. Catatan mendaftar setiap penggantian nama; ubah key di JSON jika XML harus memakai nama lain.

Pertanyaan umum

Bagaimana array JSON dikonversi ke XML?

Setiap item menjadi elemen yang dinamai sesuai key array, diulang sekali per item: "tag": ["a", "b"] menjadi <tag>a</tag><tag>b</tag>. Array tingkat atas dibungkus dalam elemen root dengan satu <item> per entri. Array kosong tidak menghasilkan elemen, jadi tidak bisa kembali saat dikonversi ke JSON; catatan akan memberi tahu jika ini terjadi.

Apa yang terjadi dengan komentar, CDATA, dan processing instruction?

Bagian CDATA menjadi teks biasa. Komentar dan processing instruction tidak punya tempat di JSON dan dihilangkan, dengan catatan. DOCTYPE dilewati, dan entity yang dideklarasikannya tidak diperluas.

Bagaimana dengan konten campuran, seperti `<p>Hello <b>world</b></p>`?

Elemen anak menjadi key seperti biasa dan teks di sekitarnya dikumpulkan di #text. JSON tidak bisa mencatat posisi teks di antara elemen, jadi urutan itu hilang; konverter menambahkan catatan jika ini terjadi.

Apakah konversi dilakukan di server?

Tidak. XML di-parse dan ditulis di browser Anda, dan tidak ada yang Anda tempel atau buka yang diunggah. Agar tidak hilang saat reload, apa yang Anda tempel disimpan di session storage tab ini sampai Anda menghapusnya atau menutup tab. Copy link menaruh input di link setelah tanda #, bagian yang tidak pernah dikirim browser ke server, tetapi siapa pun yang Anda beri link bisa membacanya.