Apa itu JSON dan bagaimana cara memakainya

JSON (JavaScript Object Notation) adalah format yang menggerakkan sebagian besar web berbahasa Indonesia hari ini. Saat Anda membuka aplikasi BCA mobile, melacak paket di JNE, atau memeriksa status pesanan di Tokopedia, hampir selalu ada dokumen JSON kecil yang berjalan antara ponsel Anda dan sebuah server.

Panduan ini dirancang agar Anda paham JSON tanpa basa-basi: apa itu, cara menulisnya, kesalahan yang hampir semua pemula buat, dan cara memvalidasinya dalam hitungan detik.

Definisi tanpa istilah teknis

JSON adalah format teks untuk menyatakan data yang terstruktur. Ia muncul dari sintaks objek JavaScript, tetapi hari ini dipahami oleh semua bahasa pemrograman serius: Python, Java, PHP, Ruby, C#, Go, Rust, dan tentu saja JavaScript.

Idenya sederhana: pasangan "kunci": nilai, dikelompokkan dalam kurung kurawal. Sebuah produk di toko daring bisa terlihat seperti ini:

{ "id": 12345, "nama": "Kaos katun premium", "ukuranTersedia": ["S", "M", "L"], "stok": 42, "sedangDiskon": true }

Tidak ada tag seperti pada XML, tidak ada pemisah aneh. Hanya kunci, titik dua, dan nilai. Itu sebabnya JSON menggantikan XML untuk hampir semua pertukaran data.

Tipe data yang diperbolehkan

JSON hanya mengenal enam tipe nilai: string dalam tanda kutip ganda, angka (tanpa membedakan bilangan bulat dan desimal), boolean (true atau false), null untuk ketiadaan, array dalam kurung siku, dan objek dalam kurung kurawal. Tidak lebih.

Tidak ada tipe tanggal bawaan. Untuk menyimpan tanggal pesanan, gunakan string dengan format ISO 8601: "2025-03-14T18:30:00Z". Juga tidak ada komentar. Jika Anda melihat komentar // atau /* */ dalam file .json, sebenarnya itu adalah JSON5 atau JSONC, varian yang tidak semua pustaka menerimanya.

Kesalahan khas pemula

Yang paling sering: memakai tanda kutip tunggal alih-alih kutip ganda. JSON mewajibkan kutip ganda, baik untuk kunci maupun nilai teks. Klasik lainnya adalah meninggalkan koma setelah elemen terakhir di array atau objek. Pada JSON standar hal itu merusak parsing.

Kunci selalu dalam tanda kutip. Di JavaScript Anda boleh menulis { nama: "Sari" } tetapi di JSON harus { "nama": "Sari" }. Untuk bilangan sangat besar seperti nomor KTP atau nomor rekening panjang, gunakan string: bilangan bulat di atas 2^53 kehilangan presisi.

Memvalidasi JSON dalam hitungan detik

Saat sebuah API mengembalikan pesan error yang membingungkan, biasanya penyebabnya adalah koma yang salah tempat. Cara cepat menemukannya: tempelkan JSON ke dalam validator. Formatter daring kami menunjukkan baris persisnya dan menulis ulang dokumen dengan indentasi yang mudah dibaca.

Di baris perintah, jq adalah rujukan utama: jq . pesanan.json mendeteksi masalah sintaks dan menampilkan hasil dengan warna. Di Python ada json.tool, di Node JSON.parse melempar exception sambil menunjuk karakter yang bermasalah.

JSON dan performa pada aplikasi nyata

JSON besar tidak gratis. Jika API Anda mengembalikan sepuluh ribu produk sekaligus, peramban harus mem-parsing semuanya sebelum bisa menampilkan apa pun. Sebaiknya paginasi (?halaman=1&perHalaman=50), aktifkan gzip atau brotli di sisi server, dan hanya kembalikan field yang benar-benar dipakai klien.

Untuk data yang sangat berulang, format seperti NDJSON (satu JSON per baris) atau MessagePack bisa lebih efisien. Tetapi untuk 95 % kasus, JSON yang terstruktur baik dengan gzip aktif di server sudah lebih dari cukup.

Alat terkait

Pertanyaan umum

Apa beda JSON dengan objek JavaScript?
Objek JavaScript hidup di memori dan bisa berisi fungsi, tanggal, atau referensi. JSON hanyalah teks yang merepresentasikan data: tidak ada fungsi, tanggal bawaan, atau undefined. Untuk mengirim objek lewat jaringan, ubah menjadi JSON dengan JSON.stringify.
Apakah JSON membedakan huruf besar dan kecil?
Ya. "Nama" dan "nama" adalah dua kunci yang berbeda. Konvensi di ekosistem JavaScript adalah camelCase ("tanggalPembuatan"), di Python sering snake_case ("tanggal_pembuatan"). Pilih satu konvensi dan pakai konsisten di seluruh proyek.
Bagaimana cara menyimpan karakter khusus seperti "é" atau aksen?
JSON mendukung UTF-8 secara bawaan, jadi Anda bisa menulis "café" atau nama daerah dengan aksen langsung. Kadang Anda akan melihat urutan seperti \u00e9, itu adalah bentuk escape yang berarti sama. Pastikan server mengirim Content-Type: application/json; charset=utf-8.
Bisakah JSON dipakai untuk konfigurasi aplikasi?
Bisa, tapi pikirkan kebutuhan Anda. Jika butuh komentar atau variabel, YAML atau TOML lebih nyaman. Untuk pasangan kunci-nilai sederhana, JSON bekerja sempurna dan dibaca oleh hampir semua bahasa tanpa pustaka tambahan.
Apakah ada ukuran maksimum yang direkomendasikan?
Tidak ada batas resmi. Di atas 1 MB, parsing mulai terasa di ponsel kelas menengah. Jika respons Anda melewati angka itu, hampir selalu lebih baik melakukan paginasi atau hanya mengembalikan field yang dipakai klien.