Tech Help
Gabime të zakonshme JSON: presje në fund, thonjëza dhe Unexpected token
Ndreqni JSON të pavlefshëm: presje në fund, thonjëza të vetme, çelësa pa thonjëza dhe Unexpected token. Pse dështon JSON.parse dhe si të vërtetoni JSON.
Shumica e gabimeve JSON vijnë nga rregulla të rrepta: presje në fund, thonjëza të vetme, emra vetish pa thonjëza, presje që mungon, kllapa të papërputhura, escape i pavlefshëm ose komente.
JSON duket si objekt JavaScript, por është më i rreptë. Emrat e vetive dhe vargjet duan thonjëza të dyfishta.
Nëse shihni Unexpected token, shenja e raportuar mund të jetë vendi ku ndaloi analizimi—jo domosdoshmërisht ku nisi gabimi origjinal.
JSON juaj është shënuar i pavlefshëm. Zakonisht është problem i vogël sintakse, jo format skedari i prishur. Shtatë gabimet më poshtë shkaktojnë shumicën e Unexpected token.
Pse prishet JSON kaq lehtë?
JSON është format të dhënash me sintaksë të rreptë. Një literal objekti JavaScript mund të duket i ngjashëm dhe prapë të jetë JSON i pavlefshëm. Në JSON standard, emrat e vetive dhe vargjet duan thonjëza të dyfishta, presja në fund nuk lejohet, dhe komentet nuk janë pjesë e formatit.
1. Presjet në fund
Presja e tepërt pas vetisë së fundit është problemi. JSON standard nuk e lejon.
I pavlefshëm
{
"name": "Alex",
"age": 30,
}
I vlefshëm
{
"name": "Alex",
"age": 30
}
I njëjti rregull vlen për vargjet. Hiqni presjen pas elementit të fundit.
I pavlefshëm
[
"red",
"green",
]
I vlefshëm
[
"red",
"green"
]
2. Thonjëza të vetme në vend të të dyfishtave
JavaScript shpesh pranon thonjëza të vetme. JSON jo. Emrat e vetive dhe vlerat e vargjeve duhet të përdorin thonjëza të dyfishta.
I pavlefshëm
{
'name': 'Alex'
}
I vlefshëm
{
"name": "Alex"
}
3. Emra vetish pa thonjëza
Në JavaScript ndonjëherë mund të shkruani name pa thonjëza. Në JSON çdo emër vetie duhet të jetë varg me thonjëza të dyfishta.
I pavlefshëm
{
name: "Alex",
age: 30
}
I vlefshëm
{
"name": "Alex",
"age": 30
}
4. Presje që mungojnë mes vlerave
Vetitë dhe elementet e vargut duan presje mes tyre. Analizuesi mund të raportojë Unexpected token te thonjëza ose kllapa tjetër, jo te presja që mungon.
I pavlefshëm
{
"name": "Alex"
"age": 30
}
I vlefshëm
{
"name": "Alex",
"age": 30
}
5. Kllapa që mungojnë ose të tepërta
Objektet përdorin { }. Vargjet përdorin [ ]. JSON i folezuar shpesh dështon kur mungon ], ka tepër }, ose janë këmbyer. Numëroni çiftet e hapjes dhe mbylljes.
I pavlefshëm
{
"items": [1, 2
}
I vlefshëm
{
"items": [1, 2]
}
6. Vargje escape të pavlefshme
Brenda një vargu JSON, pjerrësia e kundërt nisi escape. Vargje si ", \ dhe \n janë të vlefshme. Një shteg Windows i shkruar C:\Users nuk është: \U nuk është escape JSON i ligjshëm. Dyfishoni pjerrësitë e kundërta, ose analizuesi ndalon te ajo shenjë.
I pavlefshëm
{"file":"C:\Users\Alex"}
I vlefshëm
{"file":"C:\\Users\\Alex"}
7. Komente brenda JSON
JSON standard nuk ka komente. Disa mjete konfigurimi pranojnë // ose /* */ (JSONC, JSON5 dhe të ngjashme). Ajo nuk është JSON standard, dhe JSON.parse e refuzon.
I pavlefshëm
{
// user name
"name": "Alex"
}
Çfarë do të thotë Unexpected token?
Analizuesi takoi një shenjë që nuk lejohej në atë pozicion. Vendi i raportuar është ku ndaloi leximi. Nëse keni lënë një presje më herët, gabimi mund të tregojë te thonjëza e vetisë tjetër. Formulimi ndryshon sipas kohës së ekzekutimit; mos prisni që çdo shfletues të shtypë të njëjtën fjali.
Çfarë do të thotë Unexpected end of JSON input?
Teksti mbaroi para se vlera të përfundonte. Shkaqe tipike: mungon } ose ], hyrje e prerë, trup bosh, ose përgjigje API e ndërprerë. Nuk është një gabim i vetëm.
Pse dështon JSON.parse()?
JSON.parse() pranon vetëm tekst JSON të vlefshëm. Kjo ia del:
const text = '{"name":"Alex"}';
const data = JSON.parse(text);
Kjo dështon, sepse thonjëzat e vetme nuk janë JSON:
const text = "{'name':'Alex'}";
JSON.parse(text);
Mesazhi i saktë i gabimit varet nga koha e ekzekutimit JavaScript. Trajtojeni mesazhin si aluzion, pastaj kontrolloni presjet, thonjëzat dhe kllapat pranë atij pozicioni.
Një literal objekti JavaScript mund të duket si { name: 'Alex' }. JSON i vlefshëm duhet të duket si { "name": "Alex" }: emra dhe vargje me thonjëza të dyfishta, pa presje në fund, pa komente.
- Tekst JSON
- Analizuesi lexon shenja
- Të dhëna të vlefshme ose Unexpected token
Si të gjeni shpejt një gabim JSON
Punoni me këtë radhë. Mos filloni duke rishkruar të gjithë skedarin.
- Kalojeni JSON nëpër një vërtetues.
- Lexoni gabimin e parë të raportuar.
- Shikoni pak para pozicionit të raportuar.
- Kontrolloni presjet, sidomos ato në fund dhe që mungojnë.
- Kontrolloni thonjëzat: vetëm të dyfishta.
- Përputhni { } dhe [ ].
- Kontrolloni escape të pjerrësisë së kundërt në vargje.
- Hiqni komentet nëse ju duhet JSON i rreptë.
Hartë e shpejtë e ndreqjeve të zakonshme:
| Problemi | Ndreqja |
|---|---|
| Presje në fund | Fshini presjen pas elementit të fundit. |
| Thonjëza të vetme | Përdorni thonjëza të dyfishta për emra dhe vargje. |
| Çelës pa thonjëza | Mbështilleni emrin e vetisë me thonjëza të dyfishta. |
| Presje që mungon | Vendosni presje mes vetive ose elementeve të vargut. |
| Kllapë që mungon | Mbyllni çdo çift { } dhe [ ]. |
| Escape i pavlefshëm | Përdorni escape të ligjshëm, ose dyfishoni pjerrësitë e kundërta në shtigje. |
| Koment | Hiqni // dhe /* */ për JSON standard. |
Vërtetoni dhe formatoni JSON në shfletues
NEXNARA Formatim dhe krahasim JSON mund të kontrollojë JSON në këtë pajisje.
Mund të vërtetoni, të zbukuroni me 2 hapësira, 4 hapësira ose tab, minify, të krahasoni dy dokumente (JSON Diff) dhe të hapni një skedar .json. Analizimi përdor JSON.parse në shfletues, jo eval.
Dokumentet më të mëdha se 5 MB mund të ndihen të ngadalta. Teksti më i madh se 15 MB nuk përpunohet në shfletues, që faqja të mbetet e përgjegjshme.
Vetë përpunimi JSON ndodh në shfletuesin tuaj. Teksti nuk dërgohet te një server NEXNARA për këtë mjet. Reklamat dhe veçoritë e tjera të sajtit ende përdorin rrjetin; kjo është e ndarë nga përpunimi.
Duhet të kontrolloni JSON të pavlefshëm? Hapni Formatim dhe krahasim JSON dhe ngjitni tekstin.
FAQ
Pse JSON im thotë Unexpected token?
Analizuesi hasi një shenjë që nuk lejohej aty. Gabimi i vërtetë—shpesh presje që mungon ose thonjëz e vetme—mund të rrijë pikërisht para atij pozicioni.
A lejohen presjet në fund në JSON?
Jo. JSON standard nuk lejon presje pas vetisë ose elementit të fundit të vargut. Literalet e objekteve JavaScript shpesh e lejojnë.
A mund të përdorë JSON thonjëza të vetme?
Jo. Emrat e vetive dhe vargjet duhet të përdorin thonjëza të dyfishta.
A mund të përmbajë JSON komente?
Jo në JSON standard. Disa mjete pranojnë JSONC ose JSON5 me komente; JSON.parse prapë i refuzon.
Pse dështon JSON.parse()?
Vargu nuk është JSON i vlefshëm. Shkaqe tipike janë presje në fund, thonjëza të vetme, çelësa pa thonjëza, komente, ose vlerë e prerë. Mesazhi i saktë varet nga koha e ekzekutimit.
Si ta kontrolloj nëse JSON është i vlefshëm?
Ngjiteni në një vërtetues si Formatim dhe krahasim JSON, ose thirrni JSON.parse në një konsolë. Nëse analizimi hedh përjashtim, teksti nuk është JSON i vlefshëm.