Tech Help
Ümumi JSON xətaları: son vergül, dırnaq və Unexpected token
Yanlış JSON-u düzəldin: son vergül, tək dırnaq, dırnaqsız açarlar və Unexpected token. JSON.parse niyə uğursuz olur və JSON necə yoxlanılır.
Əksər JSON xətaları sərt qaydalardan gəlir: son vergül, tək dırnaq, dırnaqsız xassə adları, əskik vergül, uyğunsuz mötərizələr, yanlış escape və ya şərhlər.
JSON JavaScript obyektinə oxşayır, amma daha sərtdir. Xassə adları və sətirlər qoşa dırnaq tələb edir.
Unexpected token görsəniz, bildirilmiş simvol təhlilin dayandığı yer ola bilər—orijinal səhvin başladığı yer olmaya bilər.
JSON-unuz yanlış işarələnib. Adətən kiçik sintaksis məsələsidir, pozulmuş fayl formatı deyil. Aşağıdakı yeddi səhv əksər Unexpected token-ə səbəb olur.
JSON niyə belə asan qırılır?
JSON sərt sintaksisli məlumat formatıdır. JavaScript obyekt literali oxşar görünüb yenə də yanlış JSON ola bilər. Standart JSON-da xassə adları və sətirlər qoşa dırnaq tələb edir, son vergül icazəli deyil, şərhlər formatın hissəsi deyil.
1. Son vergüllər
Son xassədən sonra əlavə vergül problemdir. Standart JSON buna icazə vermir.
Yanlış
{
"name": "Alex",
"age": 30,
}
Düzgün
{
"name": "Alex",
"age": 30
}
Eyni qayda massivlərə də aiddir. Son elementdən sonra vergülü silin.
Yanlış
[
"red",
"green",
]
Düzgün
[
"red",
"green"
]
2. Qoşa əvəzinə tək dırnaq
JavaScript tez-tez tək dırnağı qəbul edir. JSON etmir. Xassə adları və sətir dəyərləri qoşa dırnaq istifadə etməlidir.
Yanlış
{
'name': 'Alex'
}
Düzgün
{
"name": "Alex"
}
3. Dırnaqsız xassə adları
JavaScript-də bəzən name-i dırnaqsız yaza bilərsiniz. JSON-da hər xassə adı qoşa dırnaqlı sətir olmalıdır.
Yanlış
{
name: "Alex",
age: 30
}
Düzgün
{
"name": "Alex",
"age": 30
}
4. Dəyərlər arasında əskik vergül
Xassələr və massiv elementləri arasında vergül lazımdır. Təhlilçi Unexpected token-i növbəti dırnaq və ya mötərizədə bildirə bilər, əskik vergülün özündə yox.
Yanlış
{
"name": "Alex"
"age": 30
}
Düzgün
{
"name": "Alex",
"age": 30
}
5. Əskik və ya artıq mötərizələr
Obyektlər { } istifadə edir. Massivlər [ ]. İç-içə JSON tez-tez ] əskik, } artıq və ya ikisi dəyişdiriləndə uğursuz olur. Açılış və bağlanış cütlərini sayın.
Yanlış
{
"items": [1, 2
}
Düzgün
{
"items": [1, 2]
}
6. Yanlış escape ardıcıllıqları
JSON sətirində tərs əyri xətt escape başladır. ", \ və \n kimi ardıcıllıqlar düzgündür. C:\Users yazılmış Windows yolu deyil: \U qanuni JSON escape deyil. Tərs əyri xətləri ikiqat edin, yoxsa təhlilçi o simvolda dayanır.
Yanlış
{"file":"C:\Users\Alex"}
Düzgün
{"file":"C:\\Users\\Alex"}
7. JSON içində şərhlər
Standart JSON-da şərh yoxdur. Bəzi konfiqurasiya alətləri // və ya /* */ qəbul edir (JSONC, JSON5 və oxşar). Bu standart JSON deyil və JSON.parse rədd edir.
Yanlış
{
// user name
"name": "Alex"
}
Unexpected token nə deməkdir?
Təhlilçi o mövqedə icazəsiz simvolla rastlaşdı. Bildirilmiş nöqtə oxumanın dayandığı yerdir. Əvvəl vergül buraxmısınızsa, xəta növbəti xassənin dırnağına işarə edə bilər. İfadə işləmə mühitinə görə dəyişir; hər brauzerin eyni cümləni çap etməsini gözləməyin.
Unexpected end of JSON input nə deməkdir?
Mətn dəyər tamamlanmamış bitdi. Tipik səbəblər: əskik } və ya ], kəsilmiş giriş, boş gövdə və ya kəsilmiş API cavabı. Tək bir xəta deyil.
JSON.parse() niyə uğursuz olur?
JSON.parse() yalnız düzgün JSON mətnini qəbul edir. Bu uğurlu olur:
const text = '{"name":"Alex"}';
const data = JSON.parse(text);
Bu uğursuz olur, çünki tək dırnaq JSON deyil:
const text = "{'name':'Alex'}";
JSON.parse(text);
Dəqiq xəta mesajı JavaScript işləmə mühitindən asılıdır. Mesajı ipucu sayın, sonra o mövqe yaxınlığında vergül, dırnaq və mötərizələrə baxın.
JavaScript obyekt literali { name: 'Alex' } kimi görünə bilər. Düzgün JSON { "name": "Alex" } kimi görünməlidir: qoşa dırnaqlı adlar və sətirlər, son vergül yox, şərh yox.
- JSON mətni
- Təhlilçi nişanları oxuyur
- Düzgün məlumat və ya Unexpected token
JSON xətasını tez necə tapmaq
Bu sırayla işləyin. Bütün faylı yenidən yazmaqla başlamayın.
- JSON-u yoxlayıcıdan keçirin.
- İlk bildirilmiş xətanı oxuyun.
- Bildirilmiş mövqedən bir az əvvələ baxın.
- Vergülləri yoxlayın, xüsusən son və əskik olanları.
- Dırnaqları yoxlayın: yalnız qoşa.
- { } və [ ] uyğunlaşdırın.
- Sətirlərdə tərs əyri xətt escape-lərini yoxlayın.
- Sərt JSON lazımdırsa şərhləri silin.
Adi düzəlişlərin sürətli xəritəsi:
| Problem | Düzəliş |
|---|---|
| Son vergül | Son elementdən sonra vergülü silin. |
| Tək dırnaq | Adlar və sətirlər üçün qoşa dırnaq istifadə edin. |
| Dırnaqsız açar | Xassə adını qoşa dırnağa sarın. |
| Əskik vergül | Xassələr və ya massiv elementləri arasına vergül qoyun. |
| Əskik mötərizə | Hər { } və [ ] cütünü bağlayın. |
| Yanlış escape | Qanuni escape istifadə edin və ya yollarda tərs əyri xətləri ikiqat edin. |
| Şərh | Standart JSON üçün // və /* */ silin. |
Brauzerdə JSON yoxlayın və formatlayın
NEXNARA JSON formatlayıcı və müqayisə bu cihazda JSON yoxlaya bilər.
Yoxlaya, 2 boşluq, 4 boşluq və ya tab ilə gözəlləşdirə, minify, iki sənədi müqayisə edə (JSON Diff) və .json faylı aça bilərsiniz. Təhlil brauzerdə JSON.parse istifadə edir, eval yox.
5 MB-dan böyük sənədlər yavaş görünə bilər. 15 MB-dan böyük mətn brauzerdə işlənməz ki, səhifə cavab verən qalsın.
JSON emalının özü brauzerinizdə baş verir. Bu alət üçün mətn NEXNARA serverinə göndərilmir. Reklamlar və digər sayt xüsusiyyətləri hələ şəbəkə istifadə edir; bu emaldan ayrıdır.
Yanlış JSON yoxlamaq lazımdır? JSON formatlayıcı və müqayisə açın və mətni yapışdırın.
FAQ
JSON-um niyə Unexpected token deyir?
Təhlilçi orada icazəsiz simvolla rastlaşdı. Həqiqi səhv—tez-tez əskik vergül və ya tək dırnaq—o mövqedən dərhal əvvəl otura bilər.
JSON-da son vergüllərə icazə varmı?
Xeyr. Standart JSON son xassə və ya massiv elementindən sonra vergülə icazə vermir. JavaScript obyekt literalları tez-tez icazə verir.
JSON tək dırnaq istifadə edə bilərmi?
Xeyr. Xassə adları və sətirlər qoşa dırnaq istifadə etməlidir.
JSON şərh saxlaya bilərmi?
Standart JSON-da yox. Bəzi alətlər şərhli JSONC və ya JSON5 qəbul edir; JSON.parse yenə də rədd edir.
JSON.parse() niyə uğursuz olur?
Sətir düzgün JSON deyil. Tipik səbəblər son vergül, tək dırnaq, dırnaqsız açarlar, şərhlər və ya kəsilmiş dəyərdir. Dəqiq mesaj işləmə mühitindən asılıdır.
JSON-un düzgün olub-olmadığını necə yoxlayım?
JSON formatlayıcı və müqayisə kimi yoxlayıcıya yapışdırın və ya konsolda JSON.parse çağırın. Təhlil atırsa, mətn düzgün JSON deyil.