JSON ke XML

Tempelkan dokumen JSON dan dapatkan XML yang setara, dengan nama elemen akar yang Anda pilih, strategi yang konsisten untuk array (elemen berulang atau pembungkus), deklarasi XML secara opsional, serta indentasi yang rapi. Sangat berguna ketika sistem lama memerlukan XML sementara data sumber Anda masih berformat JSON.

Cara Mengonversi JSON ke XML

  1. 1

    Tempelkan JSON

    Objek atau array pada tingkat tertinggi. Anda akan memberi nama pada elemen akar.

  2. 2

    Beri nama pada akar

    XML memerlukan satu elemen akar. Nilai defaultnya adalah `<root>`; gunakan nama yang bermakna seperti `<users>` atau `<response>`.

  3. 3

    Pilih strategi array

    “Elemen berulang” (setiap item array menjadi `<item>` yang bersaudara) atau “pembungkus” (array dimasukkan ke dalam elemen pembungkus bernama).

  4. 4

    Salin XML

    Deklarasi XML opsional, indentasi yang benar, serta nilai dengan escape entitas untuk `<`, `>`, `&`, dan tanda kutip.

Contoh: elemen yang diulang

Masukan:

{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }

Hasil:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <users>
    <name>Alice</name>
  </users>
  <users>
    <name>Bob</name>
  </users>
</root>

Contoh: pembungkus array

Input yang sama menggunakan strategi “membungkus array dalam <item>”:

<root>
  <users>
    <item>
      <name>Alice</name>
    </item>
    <item>
      <name>Bob</name>
    </item>
  </users>
</root>

Pemetaan Tipe

JSON XML
string konten teks, dengan escape entitas
bilangan bulat / desimal konten teks (tanpa anotasi tipe XML)
boolean true / false dalam bentuk teks
null elemen kosong (<foo/>) atau dihilangkan
array elemen yang diulang atau pembungkus + item
objek elemen bersarang dengan elemen anak

Atribut vs elemen

XML membedakan atribut (<user id="1">) dari elemen anak (<user><id>1</id></user>). Konverter menggunakan elemen secara default; elemen tidak kehilangan informasi saat dikonversi bolak-balik. Jika XML berikutnya memerlukan atribut, gunakan konvensi awalan kunci:

  • Kunci JSON @id menjadi atribut XML id="..." pada elemen induk.
  • Kunci JSON #text menjadi konten teks dari elemen induk.

Konvensi-konvensi ini berasal dari pemetaan BadgerFish dan Parker, dua standar paling umum untuk konversi JSON ke XML.

Aturan escape

  • < -> &lt;
  • > -> &gt;
  • & -> &amp;
  • " -> &quot; (dalam nilai atribut)
  • ' -> &apos; (opsional)
  • Byte dalam format UTF-8 dipertahankan dan telah dideklarasikan dalam XML Prolog.

Kesalahan Umum

  • Array JSON pada tingkat akar. XML memerlukan satu elemen akar saja. Konverter akan membungkus array tersebut dalam <root> (atau nama apa pun yang Anda pilih).
  • Kunci numerik. JSON {"1": "a"} sah; nama elemen XML tidak boleh diawali dengan angka. Konverter menambahkan garis bawah di depan angka (_1) atau memungkinkan Anda mendefinisikan pemetaan khusus.
  • Array campuran. [1, "two", { "x": true }] tidak memiliki pemetaan yang jelas. Umumnya ini berarti data JSON perlu dinormalisasi sebelum dikonversi.
  • Dokumen berukuran besar. XML bertele-tele; sebuah file JSON 10 MB dapat menjadi file XML 20–30 MB. Pertimbangkan konversi secara streaming untuk beban data yang sangat besar.

Pertanyaan yang Sering Diajukan

XML secara spesifik memerlukan satu elemen akar. Jika JSON Anda berupa array atau memiliki beberapa kunci tingkat atas, konverter akan mengelompokkan seluruh elemen tersebut dalam sebuah elemen akar yang dapat Anda tentukan nama (secara default bernama <root>).

Ya. Gunakan konvensi awalan @ pada kunci JSON Anda (misalnya "@id": 1); kunci-kunci tersebut akan menjadi atribut, sedangkan kunci lainnya tetap berperan sebagai elemen anak. Hal ini sesuai dengan pemetaan BadgerFish.

Ada dua strategi: elemen saudara berulang (setiap item menggunakan kunci induk sebagai tagnya), atau pembungkus yang berisi elemen <item> di dalamnya. Pilih yang sesuai dengan skema XML yang Anda targetkan.

Tidak. Konverter menghasilkan deklarasi XML (<?xml version="1.0"?>), tetapi tidak mencantumkan jenis dokumen (DOCTYPE). Untuk XML yang memerlukan referensi DTD atau XSD, tambahkan referensi tersebut secara manual setelah konversi selesai.

Alat Terkait

Alat ini tersedia dalam bahasa lain