JSON ke XML

Konversi JSON ke format XML

Coba contoh

Input JSON

Output XML

Berjalan lokal · Aman untuk menempel rahasia
XML akan muncul di sini…

Apa Itu Konversi JSON ke XML?

JSON (JavaScript Object Notation) dan XML (eXtensible Markup Language) adalah dua format pertukaran data yang paling dominan dalam pengembangan perangkat lunak. JSON menggunakan pasangan kunci-nilai dan larik dalam sintaks yang ringkas, sementara XML membungkus data dalam tag pembuka dan penutup dengan atribut opsional. Mengonversi JSON ke XML berarti menerjemahkan primitif struktural JSON — objek, larik, string, angka, boolean, dan null — menjadi dokumen XML yang terbentuk dengan baik beserta penumpukan elemen yang sesuai.

XML tetap menjadi format yang diwajibkan di banyak sistem perusahaan, API pemerintah, layanan web SOAP, dan standar industri seperti HL7 (layanan kesehatan), FpML (keuangan), dan XBRL (pelaporan keuangan). Ketika aplikasi Anda menghasilkan JSON tetapi konsumen hilir mengharapkan XML, konverter JSON ke XML menangani penerjemahan tanpa restrukturisasi manual. Konversi ini mengikuti aturan pemetaan yang dapat diprediksi: objek JSON menjadi elemen XML, item larik menjadi elemen saudara yang berulang, dan nilai primitif menjadi simpul teks.

Tidak ada RFC atau standar W3C tunggal yang mendefinisikan cara JSON dipetakan ke XML. Library yang berbeda menghasilkan output yang berbeda untuk input yang sama. Konvensi yang paling umum (digunakan oleh alat ini) membungkus seluruh dokumen dalam elemen root yang dapat dikonfigurasi, mengonversi setiap kunci JSON menjadi elemen anak XML, dan merepresentasikan item larik sebagai elemen berulang dengan nama tag yang sama. Memahami aturan pemetaan ini penting ketika sistem penerima menerapkan skema XML (XSD) tertentu.

Mengapa Menggunakan Konverter JSON ke XML Online?

Menulis XML secara manual dari sumber JSON itu membosankan dan rawan kesalahan. Tag yang tidak cocok, elemen penutup yang terlupakan, dan penumpukan yang salah menghasilkan dokumen yang gagal validasi skema. Konverter menangani penerjemahan struktural secara otomatis.

Konversi Instan di Browser
Tempelkan JSON, dapatkan XML yang terbentuk dengan baik dalam milidetik. Tidak perlu bolak-balik ke server, tidak perlu setup CLI, tidak perlu instalasi dependensi. Konversi berjalan sepenuhnya di JavaScript pada perangkat Anda.
🔒
Data Sensitif Tetap Privat
Input JSON Anda tidak pernah meninggalkan tab browser. Semua penguraian dan pembuatan XML terjadi di sisi klien, sehingga aman untuk mengonversi payload yang mengandung API key, token, atau data produksi.
📋
Tanpa Akun atau Login
Buka halaman, tempelkan JSON Anda, dan salin output XML. Tidak ada formulir pendaftaran, verifikasi email, atau batas penggunaan yang menghalangi Anda dan data yang telah dikonversi.
🌳
Menangani Struktur Bersarang Secara Otomatis
Objek yang sangat bersarang, larik campuran, dan nilai null semuanya dikonversi dengan benar. Alat ini mempertahankan hierarki lengkap input JSON Anda dalam pohon XML yang dihasilkan.

Kasus Penggunaan JSON ke XML

Integrasi Layanan Web SOAP
REST API Anda mengembalikan JSON, tetapi endpoint SOAP mitra memerlukan isi permintaan dalam bentuk XML. Konversikan payload JSON ke XML sebelum membungkusnya dalam SOAP envelope.
Pertukaran Data Perusahaan
Sistem ERP dan CRM lama sering hanya menerima impor XML. Konversikan ekspor JSON dari alat modern menjadi feed XML yang sesuai dengan skema yang diharapkan.
Konfigurasi Pipeline CI/CD
Beberapa alat build (Maven, Ant, MSBuild) menggunakan file konfigurasi XML. Hasilkan fragmen konfigurasi XML dari file parameter JSON selama proses build otomatis.
Persiapan Data Uji QA
Hasilkan fixture XML dari dataset JSON. Buat dokumen XML yang valid dengan cepat untuk menguji parser XML, transformasi XSLT, atau kueri XPath.
Jembatan Format Pipeline Data
Pipeline ETL yang menerima XML dapat menerima data dari API yang menghasilkan JSON. Konversikan hasil JSON perantara ke XML sebelum dimuat ke tahap pemrosesan berbasis XML.
Mempelajari Struktur XML
Pelajar yang mempelajari XML dapat menempelkan struktur JSON yang sudah dikenal dan melihat representasi XML yang setara. Ini membuat penumpukan tag, hierarki elemen, dan struktur dokumen menjadi konkret.

Aturan Pemetaan JSON ke XML

Karena tidak ada standar universal yang mengatur konversi JSON ke XML, alat yang berbeda menghasilkan output yang berbeda. Tabel di bawah menunjukkan konvensi pemetaan yang digunakan oleh konverter ini dan sebagian besar library populer (js2xmlparser, xmlbuilder, fast-xml-parser). Konvensi saudara berulang untuk larik menjadi dominan karena mencerminkan cara skema XML secara alami memodelkan koleksi — setiap item adalah elemen kelas satu, bukan anak yang dibungkus — dan terintegrasi dengan bersih dengan kueri XPath dan transformasi XSLT.

JSON TypeJSON ExampleXML Output
Object{"name": "Alice"}<name>Alice</name>
Nested object{"user": {"age": 30}}<user><age>30</age></user>
Array{"colors": ["red", "blue"]}<colors>red</colors><colors>blue</colors>
String"hello"<root>hello</root>
Number42<root>42</root>
Booleantrue<root>true</root>
Nullnull<root/>
Empty object{}<root/>
Empty array[](no child elements)

Contoh Kode

Berikut adalah cuplikan kode yang dapat dijalankan untuk mengonversi JSON ke XML di tiga lingkungan. Setiap contoh menghasilkan XML yang terbentuk dengan baik dari objek JSON sampel.

JavaScript (Node.js)
import { create } from 'xmlbuilder2';

const json = {
  order: {
    id: 1024,
    items: [
      { sku: "A1", qty: 2 },
      { sku: "B3", qty: 1 }
    ],
    shipped: false
  }
};

const xml = create({ version: '1.0' })
  .ele(json)
  .end({ prettyPrint: true });

console.log(xml);
// → <?xml version="1.0"?>
// → <order>
// →   <id>1024</id>
// →   <items>
// →     <sku>A1</sku>
// →     <qty>2</qty>
// →   </items>
// →   <items>
// →     <sku>B3</sku>
// →     <qty>1</qty>
// →   </items>
// →   <shipped>false</shipped>
// → </order>
Python
import json
import xmltodict

data = {
    "order": {
        "id": 1024,
        "items": [
            {"sku": "A1", "qty": 2},
            {"sku": "B3", "qty": 1}
        ],
        "shipped": False
    }
}

# xmltodict.unparse expects a single root key
xml = xmltodict.unparse(data, pretty=True)
print(xml)
# → <?xml version="1.0" encoding="utf-8"?>
# → <order>
# →   <id>1024</id>
# →   <items>
# →     <sku>A1</sku>
# →     <qty>2</qty>
# →   </items>
# →   <items>
# →     <sku>B3</sku>
# →     <qty>1</qty>
# →   </items>
# →   <shipped>false</shipped>
# → </order>
Go
package main

import (
	"encoding/json"
	"encoding/xml"
	"fmt"
)

type Item struct {
	SKU string `json:"sku" xml:"sku"`
	Qty int    `json:"qty" xml:"qty"`
}

type Order struct {
	XMLName xml.Name `xml:"order"`
	ID      int      `json:"id" xml:"id"`
	Items   []Item   `json:"items" xml:"items"`
	Shipped bool     `json:"shipped" xml:"shipped"`
}

func main() {
	raw := `{"id":1024,"items":[{"sku":"A1","qty":2},{"sku":"B3","qty":1}],"shipped":false}`

	var order Order
	json.Unmarshal([]byte(raw), &order)

	out, _ := xml.MarshalIndent(order, "", "  ")
	fmt.Println(xml.Header + string(out))
	// → <?xml version="1.0" encoding="UTF-8"?>
	// → <order>
	// →   <id>1024</id>
	// →   <items>
	// →     <sku>A1</sku>
	// →     <qty>2</qty>
	// →   </items>
	// →   ...
}

Pertanyaan yang Sering Diajukan

Apakah konversi JSON ke XML bersifat lossless?
Secara struktural, ya — setiap nilai JSON dipetakan ke elemen XML atau simpul teks. Namun, XML tidak secara native membedakan antara angka, boolean, dan string seperti yang dilakukan JSON. Nilai 42 dalam JSON menjadi konten teks "42" dalam XML. Jika sistem penerima mengandalkan deklarasi tipe XML Schema (XSD), sistem tersebut dapat memulihkan tipe asli selama penguraian. Tanpa skema, informasi tipe secara efektif hilang dalam dokumen yang dikonversi.
Bagaimana larik JSON dikonversi ke XML?
Setiap item larik menjadi elemen XML saudara dengan nama tag yang sama. Misalnya, larik JSON "colors": ["red", "blue"] menghasilkan dua elemen: &lt;colors&gt;red&lt;/colors&gt; dan &lt;colors&gt;blue&lt;/colors&gt;. Beberapa konverter membungkus larik dalam elemen induk (misalnya, &lt;colorsList&gt;), tetapi pendekatan saudara berulang lebih umum dan sesuai dengan konvensi yang digunakan oleh JAXB, Jackson, dan fast-xml-parser.
Apa yang terjadi pada nilai null dalam konversi?
Nilai null JSON biasanya dikonversi menjadi elemen XML kosong — misalnya, "middle_name": null menjadi &lt;middle_name/&gt;. Beberapa library menambahkan atribut xsi:nil="true" untuk menandakan null eksplisit, yang berguna ketika sistem target melakukan validasi terhadap skema XSD. Konverter ini menghasilkan elemen kosong yang menutup sendiri secara default.
Bisakah saya mengonversi XML kembali ke JSON?
Ya, tetapi konversi bolak-balik tidak selalu simetris. Fitur XML seperti atribut, instruksi pemrosesan, komentar, konten campuran, dan namespace tidak memiliki padanan JSON langsung. Mengonversi XML ke JSON lalu kembali ke XML dapat menghasilkan dokumen yang berbeda secara struktural. Jika Anda memerlukan konversi XML ke JSON, gunakan konverter XML ke JSON khusus yang mempertahankan atribut dan namespace.
Bagaimana cara menangani kunci JSON yang bukan nama elemen XML yang valid?
Nama elemen XML tidak boleh diawali dengan angka, mengandung spasi, atau menyertakan sebagian besar karakter khusus. Jika JSON Anda memiliki kunci seperti "2024-data" atau "first name", konverter harus membersihkannya — biasanya dengan menambahkan awalan garis bawah atau mengganti karakter yang tidak valid dengan garis bawah. Periksa output konverter Anda dan sesuaikan nama kunci di JSON sumber jika XML yang dihasilkan perlu lulus validasi XSD.
Berapa ukuran JSON maksimum yang dapat ditangani alat ini?
Konverter berjalan di mesin JavaScript browser Anda, sehingga batas praktisnya bergantung pada memori yang tersedia. Sebagian besar browser modern menangani dokumen JSON hingga 50–100 MB tanpa masalah. Untuk file yang lebih besar dari itu, gunakan konverter streaming seperti xmltodict Python atau alat baris perintah yang memproses data secara bertahap alih-alih memuatnya semuanya ke dalam memori.
Apakah output XML terbentuk dengan baik atau valid?
Output selalu merupakan XML yang terbentuk dengan baik — tag ditumpuk dengan benar, karakter khusus di-escape, dan dokumen memiliki satu elemen root. Apakah output valid atau tidak bergantung pada skema target (XSD atau DTD). Keterbentukan adalah jaminan struktural; validitas mengharuskan nama elemen, urutan penumpukan, dan tipe konten sesuai dengan definisi skema tertentu.