XML ke JSON
Alat XML ke JSON online gratis yang menggunakan DOMParser bawaan browser untuk mem-parsing XML dan mengonversinya secara otomatis menjadi objek JSON standar. Atribut XML dipetakan langsung sebagai field, elemen berulang otomatis digabungkan menjadi array, teks elemen disimpan dalam field value; mendukung output format ganda JSON dan YAML, prettyPrint formatting, serta perbaikan error XML otomatis, semuanya diproses murni di browser secara lokal.
Rekomendasi Terkait
Tentang XML ke JSON: Mengonversi data XML secara otomatis menjadi objek JSON standar
XML ke JSON adalah proses mengonversi data dalam format XML (eXtensible Markup Language) (pesan SOAP, langganan RSS, file konfigurasi) menjadi objek JSON (JavaScript Object Notation). XML adalah format data tradisional untuk sistem enterprise, SOAP Web Service, file konfigurasi, dokumen Office; JSON adalah standar de facto untuk Web API modern, JavaScript, dan database NoSQL. Kedua format memiliki keunggulan masing-masing: XML bersifat self-describing yang ketat, mendukung namespace dan validasi schema secara luas; JSON ringkas dan mudah diparsing, secara alami cocok dengan JavaScript. Dalam pengembangan, seringkali perlu mengonversi pesan XML ke JSON untuk digunakan oleh frontend atau microservice modern, dan tool ini dibuat untuk mengotomatiskan proses tersebut.
Inti dari tool ini adalah menggunakan DOMParser bawaan browser untuk mem-parsing XML, dan secara otomatis menelusuri DOM tree untuk menghasilkan objek JSON. DOMParser adalah parser XML bawaan browser yang mengikuti standar W3C DOM, mendukung semua fitur XML 1.0 seperti XML namespace, CDATA, komentar, atribut. Keunggulan parsing berbasis DOM adalah nol dependensi, performa baik, dan sesuai standar.
Aturan pemetaan konversi sangat intuitif: setiap elemen XML dikonversi menjadi objek JSON, atribut elemen langsung dikonversi menjadi field objek (tanpa awalan @, menghindari konvensi penamaan khusus yang membingungkan); konten teks elemen disimpan dalam field value; elemen berulang dengan nama sama otomatis digabungkan menjadi array. Misalnya <bookstore><book id="1"><title>Great Gatsby</title></book><book id="2"><title>Brief History</title></book></bookstore> akan dikonversi menjadi {bookstore: {book: [{id: "1", title: {value: "Great Gatsby"}}, {id: "2", title: {value: "Brief History"}}]}}.
Pemetaan atribut menggunakan pola pemetaan langsung tanpa awalan adalah pilihan desain kunci dari tool ini. Banyak tool konversi XML menggunakan awalan khusus seperti @attribute, #text untuk membedakan atribut dan teks, yang meskipun akurat namun menghasilkan struktur JSON yang agak aneh dan sulit digunakan langsung dalam JavaScript. Pemetaan atribut langsung pada tool ini membuat JSON yang dihasilkan lebih mendekati model data bisnis nyata, developer dapat langsung mendefinisikan tipe yang sesuai dalam TypeScript interface.
Pengubahan elemen berulang menjadi array adalah desain kunci lainnya dalam konversi XML ke JSON. XML tidak memiliki konsep array native, perlu menggunakan elemen berulang (seperti beberapa <item>) untuk merepresentasikan data daftar. Tool ini secara otomatis mendeteksi tag berulang dengan nama yang sama di bawah elemen induk yang sama dan menggabungkannya menjadi array, sesuai dengan semantik daftar JSON, menghindari kehilangan data atau kebutuhan penggabungan manual.
Output format ganda (JSON + YAML) adalah desain diferensiasi dari tool ini. YAML adalah format serialisasi data populer lainnya yang banyak digunakan dalam skenario konfigurasi seperti Kubernetes, Docker Compose, Ansible, GitHub Actions. Tool memiliki konverter YAML sederhana bawaan yang mendukung indentasi standar 2 spasi, awalan daftar -, pemisah key-value :. Klik tombol toggle JSON/YAML untuk beralih antara kedua format secara real-time.
Perbaikan error XML otomatis (tryFixXML) meningkatkan toleransi kesalahan tool. Pada kenyataannya, XML yang diinput pengguna sering kali kekurangan deklarasi XML (<?xml version="1.0"?>), atau tag self-closing (seperti <br>, <img>) menggunakan gaya HTML <br> bukan gaya XML <br />. Tool secara otomatis menambahkan deklarasi XML dan melengkapi / pada tag self-closing, sehingga lebih banyak XML yang tidak rapi dapat diparsing dengan benar oleh DOMParser.
Pemformatan dan kompresi XML (formatXML/compressXML) berbasis library xml-formatter. Mode prettyPrint menghasilkan XML yang dapat dibaca dengan indentasi 2 spasi dan mempertahankan baris baru; mode kompresi menghasilkan XML padat tanpa spasi kosong dalam satu baris yang cocok untuk transmisi jaringan. Developer dapat langsung menggunakan tool untuk mengompres XML sebelum menyimpannya ke database, menghemat 30-50% ruang penyimpanan.
Konversi otomatis real-time adalah fitur praktis tool. Setelah input XML, konversi otomatis terpicu dengan debounce 500ms, ditambah 6 shortcut keyboard (macOS ⇧⌘+F/C/T/O/D/K), pengguna dapat dengan cepat menyelesaikan operasi umum seperti format, kompres, konversi, unggah, unduh, kosongkan tanpa perlu klik mouse.
Pemrosesan lokal murni di browser adalah arsitektur inti tool ini. Semua parsing XML, penelusuran DOM, serialisasi JSON, konversi YAML dieksekusi dalam JavaScript browser, DOMParser disediakan native oleh browser (tidak perlu memaketkan library parser XML), xml-formatter adalah npm package ringan (kurang dari 30KB). Data XML asli tidak diunggah ke server, pesan SOAP sensitif (seperti yang berisi informasi pesanan, data pengguna) dapat diproses secara aman di lokal.
Kasus penggunaan
- Saat berintegrasi dengan API enterprise lama seperti payment gateway, ERP, CRM yang hanya mengembalikan respons XML, mengonversi pesan XML dengan cepat ke JSON untuk digunakan oleh frontend modern atau backend Node.js.
- Mem-parsing RSS / Atom feed menjadi JSON, memudahkan ditampilkan di frontend Web, diagregasi ke pembaca feed terpadu, atau diimpor ke database.
- Membaca file konfigurasi XML aplikasi Java seperti Spring, Tomcat, Apache (web.xml, applicationContext.xml), mengonversinya ke JSON lalu menggunakan jq untuk query atau mengimpor ke tool lain.
- Mengonversi respons XML protokol SOAP 1.1/1.2 menjadi JSON, dilanjutkan dengan library Node.js seperti jsonwebtoken, lodash untuk pemrosesan lebih lanjut.
- Mem-parsing script build seperti pom.xml milik Maven, build.xml milik Ant menjadi JSON, digunakan untuk visualisasi metadata proyek, analisis dependensi, dll.
- Mengonversi RSS feed, Sitemap XML, Atom feed ke format JSON untuk disimpan ke database modern seperti Elasticsearch, MongoDB.
- Saat berintegrasi dengan format data standar industri berbasis XML seperti HL7 dan ISO 20022 di industri medis dan keuangan, mengonversi pesan XML ke JSON untuk diproses oleh microservice modern.
- Mengonversi file XML terkait SEO seperti Google Merchant Center, Sitemap.org (sitemap.xml, robots.xml) menjadi JSON untuk digunakan oleh crawler atau tool analisis.
Cara Penggunaan
- Tempel konten XML di kolom input sebelah kiri, atau klik tombol "Unggah" untuk memilih file .xml/.txt, atau klik "Contoh" untuk memuat contoh bookstore bawaan.
- Tool akan mengonversi secara otomatis (debounce 500ms setelah input); lihat JSON atau YAML hasil konversi di sebelah kanan, highlight sintaks CodeMirror memudahkan pembacaan.
- Klik tombol JSON / YAML pada toolbar kanan untuk beralih format output secara real-time. Anda juga dapat menggunakan tombol "Format" (⇧⌘+F) atau "Kompres" (⇧⌘+C) untuk menyesuaikan format input XML.
- Klik "Salin" untuk menyalin JSON/YAML ke clipboard, atau klik "Unduh" untuk menyimpan sebagai file dengan ekstensi yang sesuai (output.json / output.yaml / output.xml).
- Jika perlu memperbaiki kesalahan sintaks XML, klik tombol "Perbaiki" di samping pesan error (atau di menu dropdown samping "Contoh" pada toolbar), tool akan memanggil tryFixXML untuk otomatis menambahkan deklarasi XML dan melengkapi tag self-closing.
- Tempel JSON ke dalam kode target (seperti definisi TypeScript interface, tipe respons API, dll.), atau impor ke backend service untuk pemrosesan lebih lanjut.
Fitur
- Parsing DOM tree cerdas: Mem-parsing XML berbasis DOMParser bawaan browser, menelusuri node tree secara otomatis untuk menghasilkan objek JSON standar, tanpa dependensi tambahan.
- Pemetaan atribut langsung: Atribut XML (seperti id="1", category="fiction") langsung dikonversi menjadi field biasa pada objek JSON, tanpa awalan @.
- Elemen berulang menjadi array: Elemen XML dengan nama sama yang berulang otomatis digabungkan menjadi array JSON ({book: [{...}, {...}]}), sesuai dengan konvensi struktur data umum.
- Ekstraksi text node: Konten teks elemen otomatis disimpan dalam field value, dipertahankan sejajar dengan atribut dan child element.
- Output format ganda: Beralih satu klik antara format JSON (indentasi prettyPrint 2 spasi) dan YAML (indentasi 2 spasi, awalan daftar -), menyesuaikan berbagai skenario aplikasi.
- Perbaikan error XML otomatis: Fungsi perbaikan tryFixXML bawaan, otomatis menambahkan deklarasi XML yang hilang dan melengkapi tag self-closing seperti br/hr/img.
- Format dan kompres XML: Menggunakan library xml-formatter untuk mendukung output prettyPrint yang rapi dan output minify yang ringkas (indentasi 2 spasi atau tanpa spasi kosong).
- Konversi otomatis real-time: Debounce 500ms setelah input XML untuk konversi otomatis, tidak perlu klik manual, output sinkron dan update secara real-time.
- Highlight ganda JSON/XML: Sisi kiri menggunakan highlight sintaks XML CodeMirror, sisi kanan beralih highlight JSON atau YAML sesuai format.
- Sistem shortcut lengkap: 6 shortcut umum (Format/Kompres/Konversi/Unggah/Unduh/Kosongkan), mendukung macOS dan Windows/Linux.
- Salin dan unduh: Salin ke clipboard satu klik, atau unduh sebagai file standar output.json/output.yaml/output.xml (ekstensi dipilih otomatis sesuai format saat ini).
- Pemrosesan lokal murni di browser: Semua parsing XML, penelusuran DOM, serialisasi JSON dilakukan dalam JavaScript browser, data asli tidak diunggah, DOMParser disediakan native oleh browser.
Pertanyaan Umum
Bagaimana cara mengonversi XML ke format JSON?
Tempel konten XML ke kolom input sebelah kiri, tool akan menggunakan DOMParser bawaan browser untuk mem-parsing XML dan mengonversi DOM tree secara otomatis menjadi objek JSON standar. Node root dibungkus dengan { [tagName]: {...} }, atribut dipetakan sebagai field biasa (tanpa awalan @), teks elemen disimpan dalam field value, elemen dengan nama sama yang berulang otomatis digabungkan menjadi array. Konversi berjalan otomatis setelah 500ms, tidak perlu klik tombol secara manual.
Bagaimana atribut dan text node dalam XML dikonversi?
Tool ini menggunakan pola pemetaan yang intuitif: atribut XML dipetakan langsung sebagai field biasa pada objek JSON (misalnya <book id="1"> dikonversi menjadi {id: "1", ...}), tanpa menggunakan awalan @; konten teks elemen disimpan dalam field value (seperti <title>Great Gatsby</title> menjadi {value: "Great Gatsby"}). Ketika atribut dan teks ada bersamaan, keduanya berada sejajar dalam objek yang sama.
Apakah beberapa elemen dengan nama sama yang berulang dalam XML otomatis menjadi array JSON?
Ya. Tool akan otomatis mendeteksi beberapa tag elemen berulang dengan nama yang sama di bawah elemen induk yang sama (seperti 3 buah <book> di dalam <bookstore>), dan menggabungkannya menjadi array JSON. Misalnya <bookstore><book>...</book><book>...</book></bookstore> akan menjadi {bookstore: {book: [{...}, {...}]}}. Konvensi ini cocok dengan struktur data yang paling umum dalam pemrosesan XML.
Bagaimana text node murni ditangani?
Ketika elemen XML tidak memiliki atribut dan hanya berisi teks, tool langsung mengembalikan string teks (seperti <name>Alice</name> menjadi "Alice"). Ketika elemen memiliki atribut dan teks secara bersamaan, atribut dan teks berada sejajar dalam objek yang sama ({attr: "...", value: "..."}). Ketika elemen memiliki child element, child element menjadi field objek, dan konten teks digabungkan sebagai field value.
Apakah XML yang tidak rapi formatnya (seperti tag penutup yang hilang) bisa dikonversi?
Bisa. Tool memiliki fungsi perbaikan tryFixXML bawaan yang akan otomatis menambahkan deklarasi XML yang hilang (<?xml version="1.0" encoding="UTF-8"?>), serta melengkapi / pada tag self-closing umum seperti br, hr, img. Desain ini secara signifikan meningkatkan kompatibilitas terhadap sistem lama dan antarmuka pihak ketiga yang tidak rapi formatnya.
Jenis file XML apa yang didukung?
Mendukung file .xml dan .txt (encoding UTF-8). Klik tombol "Unggah" untuk memilih file lokal, tool membaca melalui FileReader API bawaan browser, file tidak akan diunggah ke server. Setelah berhasil diunggah, konten otomatis diisi ke kolom input dan memicu konversi otomatis.
Bisakah output JSON dan YAML dihasilkan secara bersamaan?
Bisa. Tool mendukung output format ganda JSON dan YAML. Klik tombol toggle JSON/YAML pada toolbar sebelah kanan untuk beralih format output secara real-time. Format JSON menggunakan prettyPrint 2 spasi; format YAML menggunakan indentasi standar 2 spasi, awalan daftar -, pemisah key-value :, dapat langsung digunakan untuk skenario konfigurasi seperti Kubernetes, Docker Compose, Ansible.
Apa nama file yang diunduh?
Ekstensi file dipilih otomatis sesuai format output saat ini: saat memilih format JSON akan mengunduh output.json, saat memilih format YAML akan mengunduh output.yaml, jika ada input namun belum dikonversi akan mengunduh output.xml (mempertahankan format asli). Semua file ber-encoding UTF-8 dan dapat dibaca langsung oleh parser format yang sesuai.
Apa saja shortcut keyboard yang tersedia?
Tool mendukung shortcut berikut: pengguna macOS ⇧⌘+F untuk Format, ⇧⌘+C untuk Minify, ⇧⌘+T untuk Konversi, ⇧⌘+O untuk Unggah, ⇧⌘+D untuk Unduh, ⇧⌘+K untuk Kosongkan; pengguna Windows/Linux gunakan Ctrl sebagai pengganti ⌘. Total 6 shortcut yang mencakup seluruh alur kerja.
Apakah XML namespace didukung?
Tool ini mem-parsing XML berbasis DOMParser yang secara native mendukung XML namespace (xmlns). Awalan namespace akan dipertahankan sebagai bagian dari nama elemen di dalam JSON, misalnya <svg:circle> akan menjadi {svg:circle: {...}}. Jika ingin mengakses elemen lintas namespace, perlu mengenali awalan namespace pada sisi parsing JSON.
Apakah CDATA section didukung?
Didukung. Konten di dalam CDATA section (<![CDATA[...]]>) akan otomatis digabungkan oleh DOMParser ke dalam textContent elemen, tool akan mengekstraknya ke field value JSON seperti menangani text node biasa. Namun karena CDATA adalah tipe node XML bukan string, CDATA asli dan teks biasa tidak dapat dibedakan dalam output JSON.
Berapa ukuran file input yang didukung?
Secara teoretis tidak ada batas keras, dibatasi oleh memori browser. Umumnya XML berukuran 1-2 MB dapat diproses dengan lancar; file yang lebih besar mungkin melambat karena konsumsi memori DOMParser yang besar. Jika terjadi lag saat memproses pesan SOAP besar atau RSS feed, disarankan untuk menyederhanakan atau memecah file terlebih dahulu di editor XML lokal.
Pemecahan Masalah
Parsing JSON melaporkan error 'unclosed token'?
Penyebab biasanya adalah XML kehilangan tag penutup, tanda kutip atribut tidak berpasangan, atau karakter khusus tidak di-escape. Klik tombol "Perbaiki" di samping pesan error untuk memanggil tryFixXML yang otomatis menambahkan deklarasi XML dan melengkapi tag self-closing. Jika masih tidak dapat diparsing, periksa struktur XML secara manual atau lihat hasil parsing menggunakan document.documentElement.outerHTML di developer tools browser.
Urutan atribut di JSON tidak konsisten dengan XML?
Standar JSON tidak menjamin urutan atribut, tool memetakan atribut sesuai urutan source code elemen. Jika bisnis sensitif terhadap urutan, disarankan menggunakan toPairs milik Lodash atau tool serupa pada JSON yang telah diparsing untuk membangun kembali menjadi array berurutan. Namun sebagian besar engine JavaScript (V8, SpiderMonkey) akan mempertahankan kunci string sesuai urutan penyisipan.
Elemen dengan nama sama ketika hanya satu tidak menjadi array, bagaimana menanganinya?
Tool saat ini hanya mengonversi menjadi array ketika mendeteksi elemen berulang dengan nama yang sama; jika hanya ada satu elemen dengan nama tersebut, tool akan mempertahankannya sebagai objek tunggal. Jika Anda perlu memaksa pengarrayan (meskipun hanya 1 elemen), Anda dapat mengonversi terlebih dahulu lalu membungkusnya dengan castArray milik lodash: [result].flat() atau menggunakan validasi JSON Schema untuk memaksa array.
Bagaimana cara mempertahankan karakter khusus dalam atribut XML (seperti <, &)?
DOMParser akan secara otomatis melakukan unescape pada nilai atribut, tool akan mempertahankan konten setelah unescape. Jika XML asli tertulis <, nilai dalam JSON setelah konversi adalah <. Ini adalah perilaku standar XML yang sesuai ekspektasi pengguna. Jika perlu mempertahankan bentuk escape asli, dapat menggunakan library xml-formatter atau XML tokenizer implementasi sendiri sebagai pengganti DOMParser.
Mengapa output YAML tidak memiliki informasi tipe?
Format YAML sendiri mendukung tipe (seperti 12 adalah number, true adalah boolean, null adalah null), namun konverter YAML sederhana tool ini menserialisasi semua nilai sebagai string. Jika perlu mempertahankan tipe, dapat menggunakan library YAML matang seperti js-yaml, atau memaksa tipe setelah validasi melalui JSON Schema pada sisi parsing.
Bagaimana menangani input yang mengandung XML processing instruction (PI)?
DOMParser secara default mempertahankan XML processing instruction (seperti <?xml-stylesheet ...?>) sebagai node ProcessingInstruction pada document.firstChild. Tool saat ini hanya menelusuri node Element, processing instruction akan diabaikan. Jika perlu mempertahankannya, Anda dapat mengekstrak document.firstChild.nodeValue secara manual sebelum digunakan.
File .json yang diunduh dibuka dengan apa?
File unduhan output.json adalah file JSON standar ber-encoding UTF-8, dapat dibuka dengan editor teks apa pun (VS Code, Sublime, Notepad++) atau tool JSON profesional (jq, JSDoc). Dapat langsung diseret ke browser untuk melihat struktur terformat. Hampir semua bahasa pemrograman seperti JavaScript, Python, Node.js, Java, Go memiliki parser JSON bawaan.
Glosarium
- XML (eXtensible Markup Language)
- Bahasa markup yang dapat diperluas, ditetapkan oleh W3C pada tahun 1998. Menggunakan tag kurung sudut untuk mendeskripsikan struktur dan konten data, mendukung namespace, validasi Schema, transformasi XSLT. Merupakan format standar untuk SOAP Web Service, Office Open XML, RSS, Atom, dll.
- JSON (JavaScript Object Notation)
- Format pertukaran data ringan yang berbasis sintaks objek JavaScript namun independen dari bahasa pemrograman. Mendukung enam tipe dasar: objek ({}), array ([]), string, angka, boolean, null. Merupakan standar de facto untuk Web API modern, database NoSQL, dan ekosistem JavaScript.
- DOMParser
- API bawaan browser (standar W3C DOM) yang mem-parsing string XML atau HTML menjadi DOM tree. Semua browser modern (Chrome, Firefox, Safari, Edge) mendukung secara native tanpa perlu library pihak ketiga. Berbasis DOM tree, konten XML dapat dengan mudah ditelusuri, dicari, dan dimodifikasi.
- xml-formatter
- Library JavaScript ringan (kurang dari 30KB) untuk memformat (prettyPrint) dan mengompres (minify) dokumen XML. Mendukung opsi kustom seperti indentasi, karakter baris baru, collapseContent. Tool ini menggunakannya untuk menyediakan fitur format dan kompres XML.
- Pemetaan atribut (attribute mapping)
- Cara pemetaan atribut elemen XML menjadi field objek JSON. Tool ini menggunakan mode pemetaan langsung: <book id="1"> dikonversi menjadi {id: "1"}, tanpa awalan @. Menghasilkan struktur JSON yang lebih bersih, definisi TypeScript interface menjadi lebih sederhana.
- Pengarrayan elemen berulang
- Elemen berulang dengan nama yang sama dalam XML (seperti beberapa <item>) otomatis digabungkan menjadi array JSON. Ini adalah keputusan desain kunci dalam konversi XML ke JSON, sesuai dengan semantik daftar JSON dan menghindari kehilangan data.
- Field value
- Nama field untuk konten teks elemen XML yang ditetapkan oleh konvensi tool ini. Elemen <title>Great Gatsby</title> dikonversi menjadi {value: "Great Gatsby"}. Jika elemen memiliki atribut dan teks secara bersamaan, atribut dan value berada sejajar dalam objek yang sama.
- YAML (YAML Ain't Markup Language)
- Format serialisasi data yang ramah manusia, banyak digunakan untuk file konfigurasi seperti Kubernetes, Docker Compose, Ansible, GitHub Actions. Tool ini mendukung output YAML sederhana dengan indentasi 2 spasi, awalan daftar -, pemisah key-value :.
- SOAP (Simple Object Access Protocol)
- Protokol komunikasi Web service berbasis XML. Pesan SOAP dibungkus oleh SOAP envelope (XML namespace), berisi header dan body (XML payload). Tool ini dapat mem-parsing pesan SOAP menjadi JSON untuk digunakan oleh layanan JavaScript modern.
- RSS / Atom feed
- Format langganan konten berbasis XML. Format RSS 2.0 mengorganisir konten dengan struktur <rss><channel><item>, Atom menggunakan struktur <feed><entry>. Tool ini mengonversi RSS/Atom menjadi array JSON yang memudahkan ditampilkan di frontend atau diagregasi ke database.
- XML namespace
- Mekanisme untuk menghindari konflik nama elemen melalui atribut xmlns, dengan format seperti xmlns:prefix="uri". DOMParser mendukung namespace secara native, awalan namespace akan dipertahankan sebagai bagian dari nama elemen di dalam JSON.
- CDATA section
- Sintaks khusus dalam XML <![CDATA[...]]> yang digunakan untuk menyematkan teks yang mengandung karakter khusus (seperti <, >, &) di dalam elemen tanpa perlu escape. DOMParser akan menggabungkan konten CDATA ke dalam textContent elemen, tool menanganinya sebagai teks biasa.
- tryFixXML
- Fungsi perbaikan XML bawaan tool ini yang secara otomatis menambahkan deklarasi XML yang hilang (<?xml version="1.0" encoding="UTF-8"?>), serta melengkapi / pada tag self-closing umum seperti br, hr, img. Menangani data kotor dari sistem lama atau antarmuka pihak ketiga yang tidak rapi.
- prettyPrint
- Mode output dari library xml-formatter. Saat diaktifkan, XML yang dihasilkan otomatis menambahkan indentasi dan baris baru (seperti indentasi 2 spasi), keterbacaan tinggi; saat dinonaktifkan, output padat tanpa spasi kosong (minify).
Aturan pemetaan elemen XML ke field JSON
Aturan pemetaan konversi tool ini berbasis parsing DOMParser:
| Struktur XML | Contoh XML | Output JSON | Aturan pemetaan |
|---|---|---|---|
element with attrs | <book id="1" category="fiction"/> | {"id": "1", "category": "fiction"} | Atribut dipetakan langsung sebagai field objek (tanpa awalan @) |
element with text | <title>Great Gatsby</title> | {"value": "Great Gatsby"} | Konten teks elemen disimpan dalam field value |
attrs + text | <price currency="USD">12.99</price> | {"currency": "USD", "value": "12.99"} | Atribut dan teks berada sejajar dalam objek yang sama |
no attrs, no text | <book id="1"/> | {"id": "1"} | Hanya atribut, tanpa field value |
nested elements | <book><title>Gatsby</title></book> | {"title": {"value": "Gatsby"}} | Child elemen dikonversi menjadi field objek |
repeated elements | <books><book/><book/></books> | {"book": [{}, {}]} | Elemen berulang dengan nama sama otomatis digabungkan menjadi array |
root element | <bookstore>...</bookstore> | {"bookstore": {...}} | Node root dibungkus dengan { [tagName]: ... } |
namespace prefix | <svg:circle/> | {"svg:circle": {...}} | DOMParser mendukung namespace secara native |
Perbandingan format output JSON vs YAML
Karakteristik dan skenario penggunaan dua format output yang didukung tool ini:
| Dimensi | JSON | YAML | Keterangan |
|---|---|---|---|
| Sintaks | { } : [ ] ringkas | indentasi + - daftar | JSON lebih ringkas, YAML lebih mudah dibaca |
| Tipe data | number/bool/null native | number/bool/null native | Keduanya mempertahankan tipe |
| Indentasi | 2 spasi | 2 spasi | Tool ini menggunakan 2 spasi secara seragam |
| Array | [1, 2, 3] | - 1\n- 2\n- 3 | JSON menggunakan kurung siku, YAML menggunakan tanda hubung |
| Komentar | Tidak didukung (standar) | # komentar | YAML mendukung komentar |
| Keterbacaan | Sedang (noise kurung) | Tinggi (mendekati bahasa alami) | Keterbacaan YAML lebih baik |
| Skenario | REST API, frontend-backend | K8s, Docker, CI/CD | Web gunakan JSON, konfigurasi gunakan YAML |
Perbandingan format XML dan JSON
Perbandingan dua format data pada berbagai dimensi, membantu memahami kapan memilih XML atau JSON:
| Dimensi | XML | JSON | Keterangan |
|---|---|---|---|
| Sintaks | < > </> verbose | { } : [ ] ringkas | Sintaks JSON lebih ringkas, tag XML lebih verbose namun keterbacaan tinggi |
| Tipe data | Semua string | number/bool/null native | JSON mempertahankan tipe, XML perlu validasi schema untuk tipe |
| Array | Elemen berulang <i>1</i><i>2</i> | [1,2,3] native | Array JSON ringkas, array XML bergantung pada konvensi penamaan |
| Komentar | <!-- komentar --> | Tidak didukung (standar) | XML mendukung komentar, JSON standar tidak |
| Namespace | xmlns didukung | Tidak ada | XML menghindari konflik penamaan pada dokumen besar |
| Validasi Schema | XSD / DTD | JSON Schema | Keduanya memiliki mekanisme validasi schema yang matang |
| Performa parsing | Lebih lambat (overhead tag) | Lebih cepat (~3-5x) | Parsing JSON lebih sederhana, parsing XML lebih kompleks |
| Skenario | SOAP, enterprise, Office | REST API, frontend-backend | Web modern gunakan JSON, enterprise tradisional gunakan XML |
Privacy & Security
Semua operasi pada alat XML ke JSON ini sepenuhnya diselesaikan secara lokal di browser Anda: parsing XML (berbasis DOMParser bawaan browser), penelusuran DOM tree, serialisasi JSON, konversi YAML semuanya dieksekusi di sisi klien melalui JavaScript browser, xml-formatter adalah satu-satunya dependensi eksternal (npm package kurang dari 30KB). Data XML asli tidak diunggah ke server mana pun. Unggah file menggunakan FileReader API bawaan browser untuk membaca langsung ke memori, tidak melalui layanan perantara apa pun. Tidak menggunakan Cookie tracking, tidak mengumpulkan input pengguna atau data penggunaan apa pun. Setelah halaman ditutup atau di-refresh, semua konten input dan output otomatis dibersihkan dari memori. Cocok untuk memproses pesan XML yang mengandung data bisnis sensitif (informasi pesanan, kredensial pengguna, respons API enterprise).
Authoritative References
- Kompres JSON
- CSV ke JSON
- JSON ke CSV
- JSON Diff
- JSON Escape / Unescape
- Meratakan JSON
- Pemformat JSON
- Generator JSON
- Kueri JSONPath
- Penggabungan JSON
- Perbaikan JSON
- Validator Skema JSON
- Urutkan JSON
- JSON Stringify
- JSON ke HTML
- JSON ke Java
- JSON ke Markdown
- JSON ke SQL
- JSON ke TOML
- JSON ke TypeScript
- XML ke JSON
- Ubah JSON ke XML
- YAML ke JSON
- JSON → YAML
- JSON ke Python
- JSON ke Go
- JSON ke Rust
- JSON ke Swift
- JSON ke C#
- JSON ke C++
- JSON ke PHP