Memahami dan Memperbaiki Kesalahan Sintaksis JSON: Panduan Standar RFC 8259
Daftar Isi
1. Masalah Nyata Kegagalan Parsing JSON
Pesan kesalahan seperti SyntaxError: Unexpected token , in JSON at position 142 adalah salah satu kendala yang paling sering ditemui pengembang web dan teknisi API. Berbeda dengan objek JavaScript biasa yang toleran terhadap berbagai variasi penulisan, standar format JSON (ditetapkan secara formal dalam RFC 8259 dan ECMA-404) sangat ketat dan tidak mengizinkan kompromi sintaksis sekecil apa pun.
Ketika satu karakter koma berlebih ditempatkan di akhir daftar array, parser JSON native di browser atau server akan langsung menghentikan proses eksekusi dan melempar eksepsi fatal.
2. Validasi Sintaksis vs. Skema JSON vs. Aturan Bisnis
Penting untuk membedakan tiga tingkatan validasi data JSON:
- Validasi Sintaksis (Syntax Validation): Memeriksa apakah teks mematuhi tata bahasa formal RFC 8259 (tanda kutip ganda, pasangan kunci-nilai, kurung kurawal tertutup). Inilah tugas utama alat pemformat JSON kami.
- Validasi Skema (JSON Schema Validation): Memeriksa apakah tipe data dan properti sesuai dengan kontrak data (misalnya: bidang
ageharus berupa angka integer ≥ 0). - Validasi Aturan Bisnis: Memeriksa kebenaran logis data dalam konteks aplikasi (misalnya: apakah alamat surel pengguna sudah terdaftar di basis data).
Prinsip Penting: Pemformat kode tidak boleh menebak atau mengarang nilai data yang hilang. Jika dokumen JSON Anda rusak karena data terpotong di tengah jalan, alat pemformat bertugas menunjukkan lokasi baris dan kolom kerusakan secara presisi, bukan menambal data secara spekulatif.
3. Lima Kesalahan Sintaksis JSON Paling Sering Terjadi
Kesalahan 1: Koma Menggantung (Trailing Comma)
Kode Salah: {"nama": "Budi", "usia": 28,}
Penyebab: JavaScript modern mengizinkan koma di elemen terakhir objek, namun RFC 8259 secara tegas melarang koma sebelum tanda kurung tutup } atau ].
Solusi: Hapus koma setelah nilai terakhir: {"nama": "Budi", "usia": 28}.
Kesalahan 2: Menggunakan Tanda Kutip Tunggal (') Alih-alih Ganda (")
Kode Salah: {'status': 'sukses'}
Penyebab: Dalam spesifikasi JSON, baik nama kunci (keys) maupun nilai string wajib diapit oleh tanda kutip ganda (", Unicode U+0022).
Solusi: Ganti seluruh tanda kutip tunggal dengan kutip ganda: {"status": "sukses"}.
Kesalahan 3: Kunci Objek Tidak Diapit Tanda Kutip
Kode Salah: {id: 101, judul: "Dokumen"}
Penyebab: Ini adalah sintaksis literal objek JavaScript, bukan string JSON yang valid.
Solusi: Berikan tanda kutip ganda pada setiap nama kunci: {"id": 101, "judul": "Dokumen"}.
Kesalahan 4: Karakter Kontrol atau Garis Baru Tanpa Escape
Kode Salah: String yang memuat baris baru literal (tekanan tombol Enter mentah) di dalam nilai teks.
Solusi: Karakter garis baru harus ditulis menggunakan urutan escape \n, dan karakter tab harus ditulis \t.
Kesalahan 5: Nilai Non-Standar (NaN, undefined, fungsi)
Kode Salah: {"total": NaN, "catatan": undefined}
Penyebab: Tipe data literal dalam JSON hanya mencakup: string, number, boolean (true / false), null, array [], dan objek {}.
Solusi: Ganti nilai yang tidak terdefinisi dengan null atau hilangkan properti tersebut.
Alat Pengembang Terkait di GoToolstack
- Pemformat & Validator JSON: Rapikan dan identifikasi kesalahan sintaksis JSON Anda.
- Konverter JSON ke CSV & CSV ke JSON: Ubah data terstruktur tabel menjadi payload JSON secara instan.
- Pembanding Perbedaan Teks & Kode: Periksa perbedaan baris demi baris antara dua payload data.
- Penguji Ekspresi Reguler (Regex): Validasi pola regex string sebelum digunakan dalam parser kode Anda.