Tech Help
Maxaa JSON.parse ugu sheegaya "Unexpected token"?
JSON.parse wuxuu tuuraa Unexpected token marka qoraalku aanu ahayn JSON sax ah. Hagaaji xigasho keliya, comma dhamaadka, jawaabaha HTML, iyo booska khaladka.
JSON.parse() wuxuu tuuraa SyntaxError marka gelintu aanay ahayn JSON sax ah. “Unexpected token” guud ahaan waxay ka dhigan tahay in baaraha uu gaadhay xarfi aan lagu oggolayn bartaas ee qaabdhismeedka.
Sababaha caadiga ah waxaa ka mid ah xigasho keliya, comma dhamaadka, magacyada sifooyinka aan xigasho lahayn, escape xadhig khaldan, qoraal dheeraad ah agagaarka JSON, ama kala-saaridda HTML ama jidh kale oo aan JSON ahayn sidii JSON.
Erayada khaladka saxda ah way kala duwan yihiin injin JavaScript iyo browsar. Ha u malayn in waqti fulineed kasta daabaco “Unexpected token X in JSON at position N”.
Tani waa hagaajinta Unexpected token ee JSON.parse: waxa khaladku ka dhigan yahay, sida loo akhriyo booska, iyo waxa la sameeyo marka jidhku yahay HTML. Daboolka ballaaran ee comma dhamaadka, xigashooyinka, iyo Unexpected end wuxuu ku jiraa Khaladaadka JSON ee caadiga ah: comma dhamaadka, xigashooyin iyo Unexpected token.
Maxay “Unexpected token” uga dhigan tahay JSON.parse()?
JSON.parse() wuxuu u baahan yahay naxwaha JSON. Xarfi sharci-darro ah booska hadda wuxuu tuuraa SyntaxError. {“name”:“Alex”,} waa khaldan: comma-gaas ka dib shaygu ma dhammaan karo. Qoraalka fariinta iyo boosku weli way kala duwan yihiin waqtiga fulinta.
Khaladkee ayuu JSON.parse() tuuraa?
JSON khaldan guud ahaan wuxuu tuuraa SyntaxError. Diiwaangeli error.name si aad u xaqiijiso nooca. Ha qorin error.message oo dhammaystiran si adag: injinnada iyo noocyadu waxay isticmaalaan erayo kala duwan.
try {
JSON.parse('{"name":"Alex",}');
} catch (error) {
console.log(error.name);
// SyntaxError
}
1. Isticmaalka xigasho keliya halkii xigasho labalaab
{‘name’:‘Alex’} waa JSON khaldan. {“name”:“Alex”} waa sax. Xargaha JSON iyo magacyada xubnaha shayga waxay isticmaalaan xigasho labalaab. Literalka shayga JavaScript sida const user = { name: ‘Alex’ } wuxuu noqon karaa JavaScript sharci ah oo weli aan ahayn qoraalka JSON.
Khaldan
{'name':'Alex'}
Sax
{"name":"Alex"}
2. Commaoyinka dhamaadka
Comma ka dib sifooyinka ama shayga array ee ugu dambeeya maaha JSON caadi ah oo sax ah. {“name”:“Alex”,“age”:30,} iyo [1, 2, 3,] labaduba way fashilmaan. U qaado tani hal sabab Unexpected token; Khaladaadka JSON ee caadiga ah: comma dhamaadka, xigashooyin iyo Unexpected token wuxuu daboolaa commaoyinka dhamaadka si qoto dheer.
Khaldan
{
"name": "Alex",
"age": 30,
}
Sax
{
"name": "Alex",
"age": 30
}
[1, 2, 3,]
3. Magacyada sifooyinka aan xigasho lahayn
{ name: “Alex” } wuxuu noqon karaa literalka shayga JavaScript. JSON gudaheeda, magacyada xubnaha waa xarig oo waxay u baahan yihiin xigasho labalaab: {“name”:“Alex”}.
Khaldan
{
name: "Alex"
}
Sax
{
"name": "Alex"
}
4. Escape xadhig khaldan
Qoraalka JSON gudihiisa xariiqda gadaal waxay bilaabaysaa escape. Jid ceyriin ah sida C:\Users\Alex waa khaldan sababtoo ah \U maaha escape sharci ah. Labalaab xariiqyada gadaal. Ha isku darin escape luqadda-martida iyo escape JSON. Khaladaadka JSON ee caadiga ah: comma dhamaadka, xigashooyin iyo Unexpected token tan si qoto dheer ayuu u daboolaa.
Khaldan
{"file":"C:\Users\Alex"}
Sax
{"file":"C:\\Users\\Alex"}
5. Qoraal dheeraad ah ka hor ama ka dib JSON
JSON.parse wuxuu filanayaa hal qiime JSON. Horgale sida Success: ka hor {“ok”:true}, ama dabo-gale sida done ka dib, wuxuu ka dhigayaa xadhiga oo dhan mid khaldan. Meel bannaan aan muhiim ahayn agagaarka hal qiime JSON waa la oggol yahay. JSON laguma mamnuucin inuu yeesho meelo bannaan ka hor ama ka dib qiimaha.
Success:
{"ok":true}
{"ok":true}
done
6. Kala-saaridda HTML halkii JSON
U yeerista response.json() bogga HTML waa kiis Unexpected token oo caadi ah. Endpoint khaldan, bogagga HTML 404 ama 500, u-wareejinta gelitaanka, jidhka wakiilka, iyo bogagga beddelka inta badan waxay ku bilaabmaan calaamado. “Unexpected token < mar walba waxay ka dhigan tahay HTML” aad bay u adag tahay: < waa tilmaan, maaha caddayn.
fetch('/api/data')
.then(response => response.json())
Maxay “Unexpected token <” caadi ahaan ka dhigan tahay?
Qiimayaasha JSON caadi ahaan kama bilaabmaan <. Haddii jidhku ku bilaabo ama , < waxay noqon kartaa xarfaha ugu horreeya ee sharci-darrada. Inta lagu jiro hagaajinta deegaanka, hubi heerka HTTP, Content-Type, iyo jidhka ceyriinka. Erayada injinku weli way kala duwan yihiin.
Hubi jawaabta ka hor intaadan kala-saarin
Jidhka fetch mar keliya ayaa la isticmaali karaa. Inta lagu jiro hagaajinta deegaanka, akhri text() marka hore, eeg horgale gaaban, ka dibna JSON.parse isla xadhigaas. Ha u yeerin response.json() ka dibna response.text() isla jawaabta. Ha diiwaangelin culeysyada wax-soo-saarka xasaasiga ah si caadi ah.
const response = await fetch(url);
const text = await response.text();
console.log(response.status);
console.log(response.headers.get("content-type"));
console.log(text.slice(0, 200));
try {
const data = JSON.parse(text);
console.log(data);
} catch (error) {
console.error("Invalid JSON:", error);
}
Maxay “at position 123” ka dhigan tahay?
Qaar ka mid ah injinnada waxay soo sheegaan boos, sadar, ama tiir. Raadi xigasho, comma, xirmo, ama escape khaldan agagaarka. Tilmaantaas waa halka kala-saariddu ay aragtay dhibaato; sababta dhabta ah way horreyn kartaa. Lama dammaanad qaaday inay tahay xarfaha khaladka saxda ah.
Unexpected token vs Unexpected end
Unexpected token waxay ka dhigan tahay in baaraha uu la kulmay xarfi uusan filanayn. Unexpected end waxay soo bixi kartaa marka gelintu istaagto ka hor inta qiimuhu dhammayn, sida {“name”:“Alex” iyada oo aan lahayn xirmada xidhitaanka. Erayada saxda ah waxay ku xidhan yihiin injinka. Khaladaadka JSON ee caadiga ah: comma dhamaadka, xigashooyin iyo Unexpected token wuxuu daboolaa JSON-ka aan dhammaystirnayn si ballaaran.
{"name":"Alex"
JSON maaha isla literalka shayga JavaScript
JSON waa qaab xog. Literalka shayga JavaScript waa naxwaha JavaScript. Shayga JS ee leh fureyaal aan xigasho lahayn, xigasho keliya, iyo comma dhamaadka maaha qoraalka JSON ee saxda ah. JSON.parse si badbaado leh uma kala-saari karo literallada shayada JavaScript.
const data = {
name: 'Alex',
active: true,
};
{
"name": "Alex",
"active": true
}
JSON ma ku jiri karaan faallooyin?
JSON-ka caadiga ah ma taageero faallooyin. Sadar // gudaha shay waa khaldan. JSON5 iyo kordhinta la midka ah waa qaabab kale. Habee oo isbarbar dhig JSON wuxuu xaqiijiyaa JSON-ka caadiga ah JSON.parse mana u qaato JSON5 sidii JSON.
{
// user name
"name": "Alex"
}
undefined, NaN, iyo Infinity ma JSON sax ah?
Maya. Qiimayaasha JSON waa shay, array, xarig, nambar, true, false, iyo null. undefined, NaN, iyo Infinity maaha. Qiimaha sare uma baahna inuu noqdo shay ama array: true, 123, “hello”, iyo null waa JSON sax ah.
{"a":undefined}
{"a":NaN}
{"a":Infinity}
true
123
"hello"
null
Sida loo hagaajiyo khaladka Unexpected token tallaabo tallaabo
Ka shaqee isha, maaha xadhiga khaladka:
- Xaqiiji in gelintu run ahaantii tahay JSON, maaha HTML, diiwaanno, ama JavaScript.
- Eeg xarfaha ugu horreeya ee gelinta ceyriinka.
- Haddii ay ka timid API, hubi heerka HTTP iyo Content-Type. Midna 200 midna application/json ma dammaanad qaadaan JSON sax ah.
- Xaqiiji naxwaha gudaha baaraha JSON.
- Isticmaal boos kasta, sadar, ama tiir la soo sheegay sidii tilmaan, maaha sidii sababta asalka ah ee la dammaanad qaaday.
- Hubi xigashooyinka, commaoyinka, xirmooyinka, xirmooyinka afar-geesoodka, iyo escape agagaarka aaggaas.
- I barbardhig nuqul qaabaysan oo la xaqiijiyay.
- Hagaaji soo-saaraha ama endpoint. Ha tirtirin calaamadda la soo sheegay si aan kala sooc lahayn.
Beddelka caalamiga ah ee ' una " wuxuu jebin karaa apostrophe gudaha xargaha, qoraal hore loo escape-gareeyay, iyo ilo aan JSON ahayn. Soo saar JSON sax ah ka soo saaraha dhabta ah. Ha u qaadan eval sidii baare JSON.
Isticmaal JSON.stringify() markaad soo saarayso JSON gudaha JavaScript
Doorob JSON.stringify halkii aad gacanta ugu dari lahayd xargaha. Wuxuu soo saaraa qoraalka JSON ee saxda ah ee qiimayaasha uu soo saaro. Ma xafido qiime kasta oo JavaScript: undefined, hawlaha, iyo calaamaduhu waxay leeyihiin dhaqan gaar ah. Faahfaahintaas way ka baxsan tahay baaxadda halkan.
const data = {
name: "Alex",
active: true
};
const json = JSON.stringify(data);
// {"name":"Alex","active":true}
JSON khaldan vs hagaajin dhab ah
Lammaanahan waxaa lagu hubiyay JSON.parse. HTML, hagaajintu waa jawaabta, maaha tafatir naxwe.
| Dhibaatada | Khaldan | Hagaajinta |
|---|---|---|
| Xigasho keliya | {'a':1} |
{"a":1} |
| Comma dhamaadka | {"a":1,} |
{"a":1} |
| Fure aan xigasho lahayn | {a:1} |
{"a":1} |
| undefined | {"a":undefined} |
{"a":null} |
| Jidhka HTML | <html>... |
Hubi endpoint iyo jawaabta ceyriinka. Ha tafatirin HTML una JSON. |
Hagaha go’aan fudud ee Unexpected token
Haddii JSON.parse fashilmay, go’aanso inaad xitaa leedahay JSON ka hor intaadan dib u qorin xigashooyinka.
- JSON.parse wuu fashilmay
- Ka yimid API? Hubi heerka, Content-Type, iyo jidhka ceyriinka
- Ma ku bilaabmaa JSON? Haddii maya, hagaaji isha ama endpoint
- Haddii haa, xaqiiji xigashooyinka, commaoyinka, xirmooyinka, xirmooyinka afar-geesoodka, escape, qiimayaasha aan la taageerin
- Isticmaal booska la soo sheegay sidii tilmaan
- Hagaaji isha, ka dibna mar kale kala-saar
Xaqiiji JSON ka hor kala-saaridda ama isticmaalkeeda
NEXNARA Habee oo isbarbar dhig JSON wuxuu xaqiijiyaa JSON gudaha browsarka JSON.parse—maaha eval.
Xaqiiji, qurxi 2 meel bannaan, 4 meel bannaan, ama tabs, minify, koobi, soo dejiso, oo soo rar .json. JSON Diff wuxuu daboolaa shayada iyo arrays-ka isku-duuban, waddooyinka, soo koobid, shaandhooyinka, iyo is-beddelka. Kadib kala-saaridda, nuqullada qurxan iyo minify ee isla xogta waxaa loo barbar dhigaa inay siman yihiin; fureyaasha shayga waxaa la isku barbar dhigaa magaca.
Qoraalka ka weyn 5 MB wuxuu dareemi karaa gaabis. Qoraalka ka weyn 15 MB laguma habaynayo browsarka.
Xaqiijinta iyo qaabaynta JSON waxay ka dhacdaa browsarkaaga. Qalabkani ma diro JSON seerfaha NEXNARA. Xayeysiisyada iyo sifooyinka kale ee goobta wali waxay isticmaalaan shabakadda.
Ku dheji xadhiga fashilmay Habee oo isbarbar dhig JSON oo akhri xarfaha ugu horreeya ka hor intaadan dib u qorin xigashooyinka.
FAQ
Maxaa JSON.parse ugu sheegaya Unexpected token?
Qoraalku maaha JSON sax ah barta baaraha istaagay. Sababaha caadiga ah waa xigashooyin, commaoyin, qoraal dheeraad ah, ama jidh aan JSON ahayn sida HTML.
Maxay Unexpected token < uga dhigan tahay JSON?
Xarfaha ugu horreeya ee sharci-darrada waxay noqon kartaa <. Taasi inta badan waxay tilmaamaysaa bog HTML, laakiin maaha caddayn 404 ama HTML kiis kasta. Hubi heerka, Content-Type, iyo jidhka ceyriinka.
Sideen ku helaa booska khaladka JSON?
Haddii injinku soo sheego boos, sadar, ama tiir, eeg agagaarka. Khaladka dhabta ah wuu horreyn karaa. U isticmaal tilmaan, ka dibna xaqiiji.
JSON ma isticmaali kartaa xigasho keliya?
Maya. Xargaha JSON-ka caadiga ah iyo magacyada xubnaha waxay isticmaalaan xigasho labalaab.
JSON ma yeelan kartaa commaoyin dhamaadka?
Maya. JSON-ka caadiga ah ma oggola comma ka dib sifooyinka ama shayga array ee ugu dambeeya.
Sideen ku hubiyaa in xadhigu yahay JSON sax ah?
U yeer JSON.parse gudaha try/catch, ama ku dheji qoraalka Habee oo isbarbar dhig JSON. Haddii kala-saariddu tuurto SyntaxError, xadhigu maaha JSON sax ah.