Sintaks JSON: Aturan dan Contoh
Meskipun JSON dirancang untuk sederhana, ia memiliki aturan sintaks yang ketat yang harus diikuti dengan tepat. Satu koma yang salah tempat atau karakter kutip yang salah dapat membuat seluruh JSON Anda tidak valid. Panduan ini mencakup semua aturan sintaks yang perlu Anda ketahui untuk menulis JSON yang valid dan dengan cepat mengidentifikasi kesalahan saat terjadi.
Aturan Dasar
Sintaks JSON didasarkan pada subset JavaScript, tetapi dengan aturan yang lebih ketat yang memastikan kompatibilitas lintas platform. Memahami aturan-aturan ini sangat penting untuk bekerja dengan JSON secara efektif. Aturan paling penting: dokumen JSON harus menggunakan tanda kutip ganda untuk string, tidak pernah tanda kutip tunggal. Meskipun JavaScript memungkinkan 'halo' dan "halo", JSON hanya menerima "halo". Demikian pula, semua kunci dalam objek JSON harus berupa string yang diapit tanda kutip ganda. Objek JavaScript {name: "Budi"} adalah JavaScript yang valid tetapi JSON yang tidak valid; itu harus ditulis sebagai {"name": "Budi"}. Spasi dalam JSON fleksibel. Spasi, tab, dan baris baru dapat ditambahkan secara bebas di antara token untuk keterbacaan tanpa mempengaruhi data. JSON tidak memiliki konsep komentar. Koma trailing sangat dilarang. JSON peka huruf besar/kecil. Nilai boolean harus huruf kecil true dan false, bukan True dan False. Demikian pula, null harus huruf kecil. Encoding harus UTF-8 (lebih disukai), UTF-16, atau UTF-32.
Kesalahan Sintaks Umum
Bahkan developer berpengalaman membuat kesalahan sintaks JSON. Kesalahan tanda kutip tunggal sangat umum di kalangan developer yang datang dari JavaScript. Koma trailing menyebabkan kesalahan parse yang tak terhitung jumlahnya saat mengedit JSON. Kunci tanpa tanda kutip bekerja di JavaScript tetapi tidak di JSON. JSON tidak memiliki sintaks komentar. Menggunakan nilai undefined atau NaN gagal karena mereka tidak ada di JSON. Kurung yang tidak cocok mudah dibuat dalam JSON yang kompleks. Kesalahan urutan escape terjadi ketika karakter khusus dalam string tidak di-escape dengan benar. Format angka yang salah seperti nol di depan atau notasi heksadesimal menyebabkan kesalahan halus.
Coba Alat
Formatter JSON