Skip to content

Konverter XML ke JSON

Tempel XML, dapatkan JSON seketika. Mengonversi atribut ke kunci @_, menangani elemen berulang sebagai array. 100% di-browser, tidak ada upload, tanpa pendaftaran.

Tanpa Pelacakan Berjalan di Browser Gratis
Opsi · 2 spasi · XML → JSON
Indentasi
0 karakter
JSON Output
0 baris
Ditinjau untuk penanganan well-formedness XML 1.0, kebenaran konvensi @_/#text, dan akurasi pemeliharaan string — Go Tools Engineering Team · May 29, 2026

Apa Itu Konversi XML-ke-JSON dan Bagaimana Cara Kerjanya?

XML (Extensible Markup Language) dan JSON (JavaScript Object Notation) keduanya merupakan format data terstruktur, tetapi memiliki model yang sangat berbeda: XML adalah pohon elemen dengan atribut dan konten campuran (teks yang berselang-seling dengan elemen anak); JSON adalah pohon objek, array, string, angka, boolean, dan nilai null. Mengonversi di antara keduanya memerlukan serangkaian konvensi untuk menjembatani ketidaksesuaian ini.

Alat ini menggunakan konvensi yang paling banyak diadopsi, yang sama dengan yang digunakan oleh library populer seperti fast-xml-parser (Node.js), xmltodict (Python), dan JAXB (Java):

**1. Atribut → prefiks @_.** Atribut XML tidak memiliki padanan langsung dalam JSON. Konvensinya adalah merepresentasikannya sebagai kunci berprefix @_. Jadi menjadi { "@_id": "42", "@_role": "admin" } di dalam objek user. Prefiks ini tidak ambigu: tidak ada nama elemen XML valid yang dimulai dengan @, sehingga tidak ada tabrakan dengan nama elemen anak.

**2. Konten teks elemen dengan atribut → #text.** Ketika sebuah elemen memiliki atribut dan konten teks — 29.99 — teks harus berbagi objek JSON yang sama dengan atribut. Konvensinya adalah menyimpannya di bawah kunci #text, menghasilkan { "@_currency": "USD", "#text": "29.99" }. Elemen yang hanya memiliki konten teks dan tidak ada atribut dikonversi ke nilai string biasa.

**3. Elemen saudara berulang → array.** XML mengizinkan beberapa elemen anak dengan nama yang sama; objek JSON tidak dapat memiliki kunci duplikat. Solusinya adalah mengumpulkan saudara dengan nama yang sama ke dalam array. Satu elemen anak menjadi satu objek; dua atau lebih anak menjadi array objek. Ini adalah detail perilaku terpenting untuk dipahami: bentuk JSON berubah berdasarkan berapa banyak saudara yang ada dalam XML.

**4. Tanpa konversi tipe — semua nilai tetap string.** XML tidak memiliki sistem tipe native untuk konten teks. Nilai "123" dalam XML adalah string. Mengonversinya ke angka JSON 123 memerlukan asumsi tentang maksud penulis — asumsi yang salah untuk kode pos ("01234" → 1234), nomor telepon, pengenal yang diisi, dan string desimal yang sensitif presisi. Alat ini mempertahankan semua nilai sebagai string. Terapkan konversi tipe dalam kode Anda sendiri untuk field di mana Anda mengetahui tipenya.

**5. Lossy untuk komentar, instruksi pemrosesan, dan namespace.** XML mendukung fitur yang tidak dimiliki JSON: komentar (), instruksi pemrosesan (), dan semantik namespace. Fitur-fitur ini dibuang atau didekati selama konversi. Untuk pekerjaan XML lossless — memformat ulang, meminifikasi, memvalidasi — gunakan XML Formatter. Untuk konversi terbalik — membangun XML dari JSON — gunakan Konverter JSON ke XML.

**Mengapa mengonversi XML ke JSON?** JSON adalah format native JavaScript dan format pertukaran default untuk REST API. Jika Anda menerima XML dari layanan SOAP lama, feed RSS, sitemap, atau sistem enterprise, mengonversinya ke JSON memungkinkan Anda bekerja dengan data menggunakan akses objek JavaScript standar, kueri JSON path, dan database atau API yang mengenal JSON. Konversi ini adalah jembatan satu arah: berguna untuk mengonsumsi data XML dalam stack modern, tetapi tidak untuk mempertahankan atau round-trip dokumen XML.

// Convert XML to JSON in Node.js using fast-xml-parser
import { XMLParser } from 'fast-xml-parser';

const xml = `<catalog>
  <product id="P01">
    <name>Wireless Headphones</name>
    <price currency="USD">79.99</price>
  </product>
</catalog>`;

const parser = new XMLParser({
  ignoreAttributes: false,      // preserve attributes
  attributeNamePrefix: '@_',    // @_ prefix for attributes
  textNodeName: '#text',        // #text for mixed element content
  parseAttributeValue: false,   // no type coercion on attributes
  parseTagValue: false,         // no type coercion on element text
});

const result = parser.parse(xml);
console.log(JSON.stringify(result, null, 2));
// {
//   "catalog": {
//     "product": {
//       "@_id": "P01",
//       "name": "Wireless Headphones",
//       "price": {
//         "@_currency": "USD",
//         "#text": "79.99"
//       }
//     }
//   }
// }

Fitur Utama

Konversi Langsung

Output JSON diperbarui seketika saat Anda mengetik atau menempel XML — tidak perlu tombol Convert. Input besar (>200KB) secara otomatis beralih ke mode manual agar browser tetap responsif.

Konvensi Prefiks Atribut @_

Atribut XML menjadi kunci JSON berprefix @_, mengikuti konvensi fast-xml-parser dan xmltodict. menjadi { "@_attr": "val" } — tidak ambigu dan bebas tabrakan dengan nama elemen valid mana pun.

Deteksi Array Otomatis untuk Elemen Berulang

Elemen saudara dengan nama yang sama secara otomatis menjadi array JSON. Satu → objek; dua atau lebih elemen → array. Tidak perlu konfigurasi — alat mendeteksi pengulangan secara otomatis.

Tanpa Konversi Tipe — Nilai Tetap String

Semua nilai XML dipertahankan sebagai string JSON. Angka nol di depan, nomor telepon, kode yang diisi, dan string yang tampak boolean seperti "true" atau "false" tidak pernah dikonversi secara diam-diam ke angka atau boolean.

Privasi 100% Berbasis Browser

Semua konversi berjalan secara lokal di browser Anda menggunakan JavaScript. XML Anda — termasuk kredensial, konfigurasi internal, dan payload sensitif — tidak pernah dikirim ke server mana pun, tidak pernah dicatat, dan tidak pernah disimpan.

Pelaporan Error Well-Formedness

Jika XML Anda tidak well-formed, alat melaporkan nomor baris dan kolom tepat dari error pertama, sehingga Anda dapat langsung menemukan dan memperbaiki masalah sebelum mengonversi.

Contoh

File Konfigurasi

<?xml version="1.0" encoding="UTF-8"?>
<appConfig version="2.1" env="production">
  <database>
    <host>db.example.com</host>
    <port>5432</port>
    <name>myapp_prod</name>
    <pool max="10" min="2"/>
  </database>
  <cache enabled="true">
    <ttl>3600</ttl>
    <driver>redis</driver>
  </cache>
</appConfig>

Konfigurasi aplikasi kecil dengan atribut dan elemen bersarang. Atribut menjadi kunci berprefix @_ dalam output JSON: version="2.1" menjadi "@_version": "2.1" di bawah appConfig, dan atribut max dan min elemen pool menjadi "@_max": "10" dan "@_min": "2". Semua nilai — termasuk port dan ttl — tetap berupa string, bukan angka, karena konverter tidak melakukan konversi tipe.

Fragmen Sitemap

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://go-tools.org/tools/xml-to-json</loc>
    <lastmod>2026-05-29</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://go-tools.org/tools/json-to-xml</loc>
    <lastmod>2026-05-29</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

Fragmen sitemap.xml dua URL. Karena ada dua elemen saudara di bawah , keduanya menjadi array JSON. Deklarasi namespace xmlns menjadi "@_xmlns" pada objek urlset. Nilai priority "0.8" tetap berupa string — tidak ada konversi numerik — sehingga nilai berawalan nol seperti "0.08" juga akan dipertahankan persis.

Item RSS

<item>
  <title>XML to JSON: A Practical Guide</title>
  <link>https://go-tools.org/blog/xml-to-json-guide</link>
  <pubDate>Thu, 29 May 2026 00:00:00 GMT</pubDate>
  <category>Developer Tools</category>
  <description>Learn how XML attributes map to @_ keys, how repeated elements become arrays, and why values stay strings in any XML-to-JSON conversion.</description>
  <guid isPermaLink="true">https://go-tools.org/blog/xml-to-json-guide</guid>
</item>

Elemen item RSS 2.0. Elemen guid memiliki atribut isPermaLink, sehingga output JSON untuk guid menjadi objek dengan "@_isPermaLink": "true" dan "#text": "https://go-tools.org/blog/xml-to-json-guide" — atribut dan konten teks elemen berdampingan sebagai kunci saudara. Semua elemen lainnya hanya memiliki konten teks dan dikonversi langsung ke nilai string.

Cara Menggunakan

  1. 1

    Tempel XML Anda

    Masukkan atau tempel XML ke kolom input di atas. Anda juga dapat klik 'Muat contoh' untuk mencoba sampel — file konfigurasi, fragmen sitemap, atau item RSS.

  2. 2

    Lihat Output JSON Langsung

    JSON muncul seketika di panel output. Atribut menjadi kunci berprefix @_, konten teks elemen campuran menjadi #text, dan elemen saudara berulang menjadi array. Sesuaikan indent (2 atau 4 spasi) sesuai kebutuhan.

  3. 3

    Salin atau Unduh

    Klik Copy untuk mengambil JSON ke clipboard, atau Download untuk menyimpannya sebagai file .json yang siap untuk aplikasi, API, atau pipeline data Anda.

Jebakan Konversi Umum

Lupa Bahwa Nilai Tetap Berupa String

Konverter tidak melakukan konversi tipe. Jika kode hilir Anda mengharapkan angka JSON tetapi XML berisi string numerik, Anda harus mengonversinya secara eksplisit setelah mengonversi. Mengandalkan konversi string-ke-angka implisit (operator == atau aritmatika JavaScript) rawan error — selalu gunakan parseInt(), parseFloat(), atau Number() secara sengaja.

✗ Salah
// XML: <timeout>30</timeout>
// JSON output: { "timeout": "30" }  ← string, not number
// Dangerous: comparing as-is
if (config.timeout > 25) { ... }  // "30" > 25 coerces, but fragile
✓ Benar
// XML: <timeout>30</timeout>
// JSON output: { "timeout": "30" }
// Safe: explicit coercion where you know the type
if (parseInt(config.timeout, 10) > 25) { ... }

Ketidaksesuaian Bentuk Item Tunggal vs. Array

Ketika hanya ada satu elemen , outputnya adalah objek; ketika ada dua atau lebih, menjadi array. Kode konsumen yang selalu melakukan result.items.forEach() akan crash ketika items adalah objek tunggal. Selalu normalisasi ke array setelah mengonversi jika skema Anda mengizinkan satu atau banyak item.

✗ Salah
// XML with one item: <root><item>a</item></root>
// JSON: { "root": { "item": "a" } }  ← string, not array
result.root.item.forEach(i => console.log(i));  // TypeError: not a function
✓ Benar
// Normalize to array regardless of count
const items = [].concat(result.root?.item ?? []);
items.forEach(i => console.log(i));  // safe for 0, 1, or many

Konten Campuran: Teks dan Kunci #text

Ketika sebuah elemen memiliki atribut dan konten teks, teks berada di bawah #text. Mengakses nilai teks seolah-olah itu adalah string biasa akan mengembalikan objek. Selalu periksa apakah nilai elemen adalah string atau objek dengan kunci #text ketika atribut mungkin ada.

✗ Salah
// XML: <price currency="USD">29.99</price>
// JSON: { "price": { "@_currency": "USD", "#text": "29.99" } }
const amount = result.price;  // { "@_currency": "USD", "#text": "29.99" }, not "29.99"
✓ Benar
// Handle both plain string and @_/#text object
const raw = result.price;
const amount = typeof raw === 'object' ? raw['#text'] : raw;  // "29.99"

Input XML yang Tidak Well-Formed

Konverter memerlukan XML yang well-formed. Penyebab umum error well-formedness: & yang tidak di-escape dalam konten teks (gunakan &), tag yang tidak cocok ( vs — XML peka huruf besar/kecil), beberapa elemen root, atau tag yang tidak ditutup. Pesan error menampilkan baris dan kolom dari masalah pertama.

✗ Salah
<!-- Unescaped & — well-formedness error -->
<query>name = 'Alice' & role = 'admin'</query>
✓ Benar
<!-- Escaped & — valid XML -->
<query>name = 'Alice' &amp; role = 'admin'</query>

Nilai Berawalan Nol yang Rusak karena Konversi

Alat ini mempertahankan angka nol di depan karena tidak melakukan konversi tipe. Jika Anda memproses JSON dengan library yang melakukan konversi (beberapa validator skema JSON, mapper ORM), angka nol di depan mungkin hilang. Selalu deklarasikan tipe field secara eksplisit sebagai string dalam skema Anda.

✗ Salah
// XML: <zipCode>01234</zipCode>
// This tool outputs: { "zipCode": "01234" }  ← correct
// But if a downstream schema coerces:
// { zipCode: z.number() }  → 1234  ← leading zero lost
✓ Benar
// Declare ZIP codes and other padded identifiers as strings
// { zipCode: z.string() }  → "01234"  ← correct

Kasus Penggunaan Umum

Mengonsumsi API SOAP / XML Lama
Layanan enterprise lama (perbankan, asuransi, logistik) sering mengekspos API SOAP yang mengembalikan XML. Konversi respons ke JSON untuk bekerja dengan data menggunakan tooling JavaScript modern, menyimpannya di database dokumen, atau meneruskannya ke konsumen REST API.
Memproses Feed RSS dan Atom
Feed RSS 2.0 dan Atom 1.0 adalah XML. Konversi XML feed ke JSON untuk mengekstrak judul, tautan, tanggal publikasi, dan deskripsi untuk agregator feed, pipeline konten, dan sistem notifikasi tanpa ketergantungan library parsing XML.
Parsing File Sitemap
File sitemap.xml mencantumkan URL situs dengan metadata. Konversi sitemap ke JSON untuk menganalisis cakupan URL, membangun antrean crawl, membandingkan sitemap di berbagai lingkungan, atau memasukkan URL ke pemeriksa tautan atau alat audit SEO.
Transformasi File Konfigurasi
Banyak sistem enterprise (Spring, Maven, Ant, JBoss, Tomcat) menggunakan file konfigurasi XML. Konversi ke JSON untuk analisis, scripting migrasi, pembuatan dokumentasi, atau impor ke alat yang natively berbicara JSON.
Pengembangan Mobile dan Android
Resource Android, file layout, dan AndroidManifest.xml semuanya adalah XML. Konversi ke JSON untuk skrip analisis, audit otomatis, atau menghasilkan dokumentasi tentang izin yang dideklarasikan, aktivitas, dan nilai resource.
Migrasi Data dan ETL
Ekspor data dari sistem enterprise (ERP, CRM, penggajian) sering tiba sebagai XML. Konversi ke JSON sebagai langkah pertama dalam pipeline ETL untuk memuat data ke penyimpan data native JSON seperti MongoDB, Firestore, atau REST API.

Detail Teknis

Browser DOMParser untuk Parsing XML
Input XML di-parse menggunakan DOMParser bawaan browser dengan tipe MIME 'text/xml' — mesin yang sama yang digunakan untuk merender SVG dan XHTML. Sepenuhnya sesuai XML 1.0 dan melaporkan error well-formedness dengan informasi baris dan kolom. Pendekatan ini menangani namespace, bagian CDATA, instruksi pemrosesan, dan referensi entitas dengan benar tanpa ketergantungan pihak ketiga.
Serialisasi DOM-ke-JSON Rekursif
Setelah di-parse, alat menelusuri pohon DOM secara rekursif. Node elemen menjadi objek JSON; atributnya menjadi kunci berprefix @_; elemen hanya-teks menjadi nilai string biasa; elemen dengan atribut dan konten teks mendapat kunci #text untuk konten teks. Elemen saudara dengan nama yang sama dikumpulkan dan dikeluarkan sebagai array JSON. Node teks hanya-spasi di antara elemen dibuang.
Tanpa Konversi Tipe — Pemeliharaan String
Semua nilai atribut dan konten teks ditulis ke output JSON sebagai string. Tidak ada parseInt, parseFloat, atau parsing boolean yang diterapkan. Ini adalah pilihan desain yang disengaja untuk mencegah kerusakan data diam-diam untuk nilai berawalan nol, desimal yang sensitif presisi, dan string yang tampak boolean. Konversi tipe, jika diperlukan, harus diterapkan secara eksplisit dalam kode hilir.
100% Berbasis Browser — Tanpa Upload, Tanpa Server
Semua pemrosesan berjalan di JavaScript engine browser Anda. Tidak ada data yang ditransmisikan melalui jaringan kapan pun. Input yang lebih besar dari 200KB secara otomatis beralih dari mode langsung ke mode manual (memerlukan klik Convert eksplisit) untuk menjaga browser tetap responsif dan mencegah pemblokiran thread utama selama traversal DOM yang berat.

Praktik Terbaik

Validasi Well-Formedness XML Terlebih Dahulu
Jika sumber XML Anda ditulis tangan atau dihasilkan oleh sistem yang kadang menghasilkan output tidak valid, validasikan sebelum mengonversi. Gunakan tombol Validate di XML Formatter untuk mengonfirmasi XML well-formed dan mendapatkan lokasi error yang tepat untuk setiap masalah.
Normalisasi Field Satu-atau-Banyak ke Array
Ketika skema XML Anda mengizinkan satu atau banyak elemen anak dengan nama yang sama, output JSON akan berupa objek untuk satu elemen dan array untuk banyak. Selalu normalisasi field ini dalam kode konsumen Anda: const items = [].concat(result.items ?? []) — ini aman untuk nol, satu, atau banyak dan mencegah TypeError.
Terapkan Konversi Tipe Secara Eksplisit dan Selektif
Karena alat ini mempertahankan semua nilai sebagai string, terapkan konversi tipe secara sengaja dalam kode Anda untuk field spesifik yang memerlukannya. Menggunakan parseInt(val, 10) untuk field bilangan bulat yang diketahui adalah aman. Menerapkan konversi secara luas dengan Number(val) berisiko merusak nilai berawalan nol, string kosong, dan desimal yang sensitif presisi.
Periksa #text Saat Mengakses Nilai Elemen
Jika sebuah elemen dapat memiliki atribut dalam beberapa payload dan tidak dalam payload lain, nilai JSON-nya akan berupa string biasa (tanpa atribut) atau objek dengan kunci @_ dan kunci #text (dengan atribut). Tulis accessor yang tangguh: const val = typeof node === 'object' ? node['#text'] : node. Pola ini menangani kedua bentuk dan menghindari nilai undefined yang diam-diam.
Untuk Pekerjaan XML Lossless, Gunakan XML Formatter
Konversi XML-ke-JSON membuang komentar, instruksi pemrosesan, dan semantik namespace. Jika Anda perlu mempertahankan semua konten XML dengan tepat, gunakan XML Formatter untuk beautify, minify, dan validasi tanpa kehilangan apa pun. Konversi ke JSON hanya ketika Anda perlu bekerja dengan data dalam konteks native JSON.

Pertanyaan yang Sering Diajukan

Apakah data XML saya dikirim ke server saat menggunakan alat ini?
Tidak. Semua konversi terjadi sepenuhnya di dalam browser Anda menggunakan JavaScript. XML Anda tidak pernah ditransmisikan melalui jaringan, tidak pernah disimpan di server mana pun, dan tidak pernah dicatat atau dianalisis. Ini membuat alat aman untuk digunakan dengan payload XML yang berisi kredensial API, konfigurasi layanan internal, token SOAP WS-Security, data kesehatan HL7/FHIR, atau konten sensitif lainnya. Anda dapat memverifikasi ini dengan membuka tab Network browser Anda — Anda akan melihat nol permintaan yang dipicu saat menempel atau mengonversi XML.
Bagaimana atribut XML dipetakan dalam output JSON?
Atribut XML menjadi kunci JSON berprefix @_. Misalnya, menghasilkan objek JSON yang berisi "@_id": "P01" dan "@_category": "electronics" bersama kunci elemen anak lainnya. Ketika sebuah elemen memiliki atribut dan konten teks — seperti 29.99 — konten teks disimpan di bawah kunci khusus "#text", sehingga hasilnya adalah { "@_currency": "USD", "#text": "29.99" }. Konvensi ini konsisten dan dapat diprediksi: @_ selalu berarti atribut, #text selalu berarti konten teks elemen.
Apakah konverter melakukan konversi angka atau boolean?
Tidak. Semua konten teks XML dan nilai atribut menjadi string JSON, terlepas dari tampilannya. 42 menjadi "count": "42", bukan 42. true menjadi "enabled": "true", bukan true. Ini disengaja dan penting: ini mempertahankan angka nol di depan (nomor telepon, kode akun, kode pos seperti "01234"), presisi numerik untuk nilai seperti "0.100", dan nilai string yang kebetulan tampak seperti boolean. Jika Anda memerlukan angka atau boolean dalam JSON hilir, terapkan konversi tipe dalam kode Anda sendiri setelah mengonversi — di mana Anda mengontrol persis field mana yang dikonversi.
Bagaimana elemen berulang (saudara dengan nama yang sama) ditangani?
Satu elemen anak menjadi objek JSON. Dua atau lebih elemen anak dengan nama tag yang sama di bawah induk yang sama menjadi array JSON. Misalnya, a menghasilkan { "root": { "item": "a" } } — item adalah objek (string). Tetapi ab menghasilkan { "root": { "item": ["a", "b"] } } — item adalah array. Ini berarti struktur output JSON bergantung pada jumlah elemen saudara dalam XML, yang merupakan salah satu alasan konversi XML-ke-JSON berbasis konvensi. Jika skema XML Anda dapat memiliki satu atau banyak item, kode konsumen Anda harus menangani kasus objek dan array.
Apakah konversi XML-ke-JSON bersifat lossless?
Tidak. XML memiliki fitur yang tidak memiliki padanan JSON dan dibuang selama konversi: komentar XML () dibuang, instruksi pemrosesan () dibuang, binding prefiks namespace sebagian dipertahankan sebagai atribut @_ tetapi semantiknya tidak, dan urutan relatif node konten campuran (teks yang berselang-seling dengan elemen anak) mungkin tidak round-trip dengan sempurna. Untuk XML struktural murni tanpa komentar atau instruksi pemrosesan, konversi mempertahankan semua nama elemen, nama atribut, nilai atribut, dan konten teks. Untuk pekerjaan XML lossless — pemformatan, validasi, atau pemeriksaan XML tanpa kehilangan data — gunakan XML Formatter sebagai gantinya.
Bagaimana cara mengonversi JSON kembali ke XML?
Gunakan alat pendamping Konverter JSON ke XML. Alat ini menerapkan konvensi yang sama secara terbalik: kunci berprefix @_ menjadi atribut XML, kunci #text menjadi konten teks elemen, dan array JSON menjadi elemen saudara berulang dengan nama yang sama. Ini membuat kedua alat simetris untuk kasus penggunaan round-trip.
Apa yang terjadi dengan namespace XML?
Deklarasi namespace (xmlns="..." dan xmlns:prefix="...") diperlakukan sebagai atribut biasa dan muncul dalam output JSON sebagai kunci @_xmlns dan @_xmlns:prefix. Prefiks namespace dalam nama elemen dipertahankan sebagai bagian dari kunci nama elemen (mis., menjadi "soap:Body" dalam JSON). Makna semantis namespace — bahwa dua prefiks mungkin menunjuk ke URI yang sama — tidak diinterpretasikan. Jika penanganan namespace yang tepat penting untuk kasus penggunaan Anda, parse XML dalam parser yang mengenal namespace alih-alih mengonversi ke JSON.
Mengapa 0123 menjadi "0123" dan bukan 123?
Karena konverter tidak melakukan konversi tipe. String "0123" dan angka 123 adalah nilai yang berbeda: "0123" memiliki angka nol di depan yang bermakna dalam banyak konteks (kode akun, kode pos, nomor identifikasi nasional, pengenal yang diisi). Menghapus angka nol di depan secara diam-diam akan merusak data. Default yang aman adalah mempertahankan semua nilai sebagai string persis seperti yang muncul dalam XML. Terapkan parsing numerik secara selektif dalam kode Anda sendiri untuk field spesifik di mana Anda tahu nilainya selalu berupa bilangan bulat biasa.
Apa perbedaan antara alat ini dan XML formatter?
XML Formatter memformat ulang XML — mengubah indentasi dan spasi tetapi outputnya masih XML. Konverter XML-ke-JSON ini mengubah format sepenuhnya: outputnya adalah dokumen JSON yang merepresentasikan struktur XML menggunakan konvensi atribut @_. Gunakan formatter saat Anda ingin membaca, mengedit, memvalidasi, atau meminifikasi XML. Gunakan konverter ini saat Anda perlu bekerja dengan data XML dalam aplikasi JavaScript, memasukkannya ke REST API, atau menyimpannya di penyimpan dokumen JSON.
Apakah ada batas ukuran file?
Tidak ada batas keras, tetapi input yang lebih besar dari 200KB secara otomatis beralih dari konversi langsung ke mode manual. Dalam mode manual, tombol Convert muncul dan konversi hanya berjalan saat Anda mengkliknya — ini menjaga browser tetap responsif saat mem-parse dokumen XML besar. Untuk file XML yang sangat besar (ekspor data multi-megabyte), pertimbangkan alat command-line untuk performa lebih baik: python3 -c "import sys, xmltodict, json; print(json.dumps(xmltodict.parse(sys.stdin.read()), indent=2))" atau node -e dengan library XML-ke-JSON khusus.
Apakah konverter menangani bagian CDATA?
Ya. Konten bagian CDATA () diperlakukan sebagai konten teks elemen dan muncul sebagai nilai string biasa dalam output JSON. Pembatas CDATA itu sendiri dihapus — hanya konten di dalamnya yang dipertahankan. Misalnya, menghasilkan "note": "if (a < b) return;" dalam JSON. Ini adalah perilaku yang benar: CDATA hanyalah cara untuk menyematkan teks dengan karakter khusus tanpa men-escape-nya; makna semantisnya adalah konten teks.
Bisakah saya mengonversi XML dengan beberapa elemen root?
Tidak. XML dengan beberapa elemen root tidak well-formed, dan alat ini memerlukan input XML yang well-formed. Jika parser XML Anda memberikan beberapa elemen root (umum saat menyatukan fragmen XML), bungkus dalam satu elemen root sebelum mengonversi. Misalnya, jika Anda memiliki , konversi sebagai . Pesan error akan menunjukkan posisi masalah well-formedness sehingga Anda dapat memperbaikinya dengan cepat.