Bantuan teknis

Kesalahan JSON Umum: Koma Trailing, Tanda Kutip, dan Unexpected Token

Perbaiki JSON tidak valid: koma trailing, kutip tunggal, kunci tanpa kutip, dan Unexpected token. Pelajari mengapa JSON.parse gagal dan cara memvalidasi JSON.

Jawaban singkat

Sebagian besar kesalahan JSON berasal dari aturan sintaks yang ketat: koma trailing, kutip tunggal, nama properti tanpa kutip, koma hilang, kurung tidak cocok, escape salah, atau komentar.

JSON tampak seperti objek JavaScript, tetapi lebih ketat. Nama properti dan string memerlukan kutip ganda.

Jika muncul Unexpected token, karakter yang dilaporkan mungkin tempat penguraian berhenti—bukan selalu tempat kesalahan semula dimulai.

JSON Anda ditandai tidak valid. Biasanya itu masalah sintaks kecil, bukan format berkas yang rusak. Tujuh kesalahan di bawah ini menyebabkan sebagian besar Unexpected token.

Mengapa JSON Mudah Rusak?

JSON adalah format data dengan sintaks ketat. Literal objek JavaScript bisa tampak serupa tetapi tetap JSON tidak valid. Dalam JSON standar, nama properti dan string perlu kutip ganda, koma trailing tidak diizinkan, dan komentar bukan bagian dari format.

1. Koma Trailing

Koma ekstra setelah properti terakhir adalah masalahnya. JSON standar tidak mengizinkannya.

Tidak valid

{
  "name": "Alex",
  "age": 30,
}

Valid

{
  "name": "Alex",
  "age": 30
}

Aturan yang sama berlaku untuk array. Hapus koma setelah item terakhir.

Tidak valid

[
  "red",
  "green",
]

Valid

[
  "red",
  "green"
]

2. Kutip Tunggal, Bukan Kutip Ganda

JavaScript sering menerima kutip tunggal. JSON tidak. Nama properti dan nilai string harus memakai kutip ganda.

Tidak valid

{
  'name': 'Alex'
}

Valid

{
  "name": "Alex"
}

3. Nama Properti Tanpa Kutip

Di JavaScript kadang bisa menulis name tanpa kutip. Di JSON setiap nama properti harus berupa string berkutip ganda.

Tidak valid

{
  name: "Alex",
  age: 30
}

Valid

{
  "name": "Alex",
  "age": 30
}

4. Koma Hilang di Antara Nilai

Properti dan item array memerlukan koma di antaranya. Parser bisa melaporkan Unexpected token pada kutip atau kurung berikutnya, bukan pada koma yang hilang itu sendiri.

Tidak valid

{
  "name": "Alex"
  "age": 30
}

Valid

{
  "name": "Alex",
  "age": 30
}

5. Kurung Kurang atau Berlebih

Objek memakai { }. Array memakai [ ]. JSON bersarang sering gagal saat ] hilang, } berlebih, atau keduanya tertukar. Hitung pasangan buka dan tutup.

Tidak valid

{
  "items": [1, 2
}

Valid

{
  "items": [1, 2]
}

6. Urutan Escape Tidak Valid

Di dalam string JSON, backslash memulai escape. Urutan seperti ", \ dan \n valid. Jalur Windows yang ditulis C:\Users tidak: \U bukan escape JSON yang sah. Gandakan backslash, atau parser berhenti pada karakter itu.

Tidak valid

{"file":"C:\Users\Alex"}

Valid

{"file":"C:\\Users\\Alex"}

7. Komentar di Dalam JSON

JSON standar tidak punya komentar. Beberapa alat konfigurasi menerima // atau /* */ (JSONC, JSON5, dan sejenisnya). Itu bukan JSON standar, dan JSON.parse akan menolaknya.

Tidak valid

{
  // user name
  "name": "Alex"
}

Apa Arti Unexpected Token?

Parser menemukan karakter yang tidak diizinkan di posisi itu. Titik yang dilaporkan adalah tempat pembacaan berhenti. Jika Anda menghilangkan koma lebih awal, galat bisa menunjuk kutip properti berikutnya. Bunyi pesan berbeda per runtime; jangan harap setiap peramban mencetak kalimat yang sama.

Apa Arti Unexpected End of JSON Input?

Teks berakhir sebelum nilai selesai. Penyebab khas termasuk } atau ] hilang, masukan terpotong, isi kosong, atau respons API yang putus. Bukan satu bug tunggal.

Mengapa JSON.parse() Gagal?

JSON.parse() hanya menerima teks JSON yang valid. Ini berhasil:

const text = '{"name":"Alex"}';
const data = JSON.parse(text);

Ini gagal, karena kutip tunggal bukan JSON:

const text = "{'name':'Alex'}";
JSON.parse(text);

Pesan galat yang tepat bergantung pada runtime JavaScript. Anggap pesan sebagai petunjuk, lalu periksa koma, kutip, dan kurung di dekat posisi itu.

JSON Bukan Objek JavaScript

Literal objek JavaScript bisa tampak seperti { name: 'Alex' }. JSON yang valid harus seperti { "name": "Alex" }: nama dan string berkutip ganda, tanpa koma trailing, tanpa komentar.

  • Teks JSON
  • Parser membaca token
  • Data valid atau Unexpected token
Tanda galat adalah tempat penguraian berhenti, yang mungkin setelah kesalahan yang sebenarnya.

Cara Menemukan Galat JSON dengan Cepat

Kerjakan dalam urutan ini. Jangan mulai dengan menulis ulang seluruh berkas.

  1. Jalankan JSON lewat validator.
  2. Baca galat pertama yang dilaporkan.
  3. Lihat sedikit sebelum posisi yang dilaporkan.
  4. Periksa koma, terutama yang trailing dan yang hilang.
  5. Periksa kutip: hanya kutip ganda.
  6. Cocokkan { } dan [ ].
  7. Periksa escape backslash dalam string.
  8. Hapus komentar jika Anda butuh JSON ketat.

Peta cepat perbaikan biasa:

Masalah Perbaikan
Koma trailingHapus koma setelah item terakhir.
Kutip tunggalPakai kutip ganda untuk nama dan string.
Kunci tanpa kutipBungkus nama properti dengan kutip ganda.
Koma hilangTaruh koma di antara properti atau item array.
Kurung hilangTutup setiap pasangan { } dan [ ].
Escape tidak validPakai escape yang sah, atau gandakan backslash pada jalur.
KomentarHapus // dan /* */ untuk JSON standar.

Validasi dan Format JSON di Peramban

NEXNARA Format dan bandingkan JSON dapat memeriksa JSON di perangkat ini.

Anda dapat memvalidasi, merapikan dengan 2 spasi, 4 spasi, atau tab, minify, membandingkan dua dokumen (JSON Diff), dan membuka berkas .json. Penguraian memakai JSON.parse di peramban, bukan eval.

Dokumen lebih besar dari 5 MB bisa terasa lambat. Teks lebih besar dari 15 MB tidak diproses di peramban, agar halaman tetap responsif.

Pemrosesan JSON itu sendiri terjadi di peramban Anda. Teks tidak dikirim ke server NEXNARA untuk alat ini. Iklan dan fitur situs lain tetap memakai jaringan; itu terpisah dari pemrosesan.

Perlu memeriksa JSON tidak valid? Buka Format dan bandingkan JSON dan tempel teksnya.

FAQ

Mengapa JSON saya berkata Unexpected token?

Parser menemui karakter yang tidak diizinkan di tempat itu. Kesalahan yang sebenarnya—sering koma hilang atau kutip tunggal—bisa duduk tepat sebelum posisi itu.

Apakah koma trailing diizinkan dalam JSON?

Tidak. JSON standar tidak mengizinkan koma setelah properti atau item array terakhir. Literal objek JavaScript sering mengizinkannya.

Bisakah JSON memakai kutip tunggal?

Tidak. Nama properti dan string harus memakai kutip ganda.

Bisakah JSON berisi komentar?

Tidak dalam JSON standar. Beberapa alat menerima JSONC atau JSON5 dengan komentar; JSON.parse tetap akan menolaknya.

Mengapa JSON.parse() gagal?

String-nya bukan JSON yang valid. Penyebab khas adalah koma trailing, kutip tunggal, kunci tanpa kutip, komentar, atau nilai terpotong. Pesan yang tepat bergantung pada runtime.

Bagaimana cara memeriksa apakah JSON valid?

Tempel ke validator seperti Format dan bandingkan JSON, atau panggil JSON.parse di konsol. Jika penguraian melempar, teks itu bukan JSON yang valid.