Tech Help
JSON akats ohikoak: amaierako koma, komatxoak eta Unexpected token
Konpondu JSON baliogabea: amaierako koma, komatxo bakunak, komatxorik gabeko gakoak eta Unexpected token. Zergatik huts egiten duen JSON.parse-ek eta nola balioztatu JSON.
JSON akats gehienak arau zorrotzetatik datoz: amaierako koma, komatxo bakunak, komatxorik gabeko propietate-izenak, falta den koma, parentesi desegokiak, escape baliogabea edo iruzkinak.
JSON JavaScript objektu baten antzekoa da, baina zorrotzagoa. Propietate-izenek eta kateek komatxo bikoitzak behar dituzte.
Unexpected token ikusten baduzu, jakinarazitako karakterea analisiak gelditu den lekua izan daiteke—ez nahitaez jatorrizko akatsa hasi zen lekua.
Zure JSON baliogabe gisa markatu da. Normalean sintaxi arazo txikia da, ez fitxategi-formatu hautsia. Beheko zazpi akatsek Unexpected token gehienak eragiten dituzte.
Zergatik hausten da JSON hain erraz?
JSON sintaxi zorrotzeko datu-formatua da. JavaScript objektu-literala antzekoa izan daiteke eta hala ere JSON baliogabea. JSON estandarrean, propietate-izenek eta kateek komatxo bikoitzak behar dituzte, amaierako koma ez da onartzen, eta iruzkinak ez dira formatuaren parte.
1. Amaierako komak
Azken propietatearen ondoko koma gehigarria da arazoa. JSON estandarrak ez du onartzen.
Baliogabea
{
"name": "Alex",
"age": 30,
}
Baliozkoa
{
"name": "Alex",
"age": 30
}
Arau bera array-ei dagokie. Kendu koma azken elementuaren ondoren.
Baliogabea
[
"red",
"green",
]
Baliozkoa
[
"red",
"green"
]
2. Komatxo bakunak bikoitzen ordez
JavaScript-ek maiz onartzen ditu komatxo bakunak. JSON-ek ez. Propietate-izenek eta kate-balioek komatxo bikoitzak erabili behar dituzte.
Baliogabea
{
'name': 'Alex'
}
Baliozkoa
{
"name": "Alex"
}
3. Komatxorik gabeko propietate-izenak
JavaScript-en batzuetan name komatxorik gabe idatz daiteke. JSON-en propietate-izen bakoitza komatxo bikoitzeko katea izan behar da.
Baliogabea
{
name: "Alex",
age: 30
}
Baliozkoa
{
"name": "Alex",
"age": 30
}
4. Balioen artean falta diren komak
Propietateek eta array-elementuek koma behar dute tartean. Parser-ak Unexpected token jakinaraz dezake hurrengo komatxoan edo giltzan, falta den koman ez.
Baliogabea
{
"name": "Alex"
"age": 30
}
Baliozkoa
{
"name": "Alex",
"age": 30
}
5. Parentesi falta edo soberan
Objektuek { } erabiltzen dute. Array-ek [ ]. JSON habiaratuak maiz huts egiten du ] falta denean, } soberan dagoenean edo biak trukatu direnean. Zenbatu irekitze- eta ixte-bikoteak.
Baliogabea
{
"items": [1, 2
}
Baliozkoa
{
"items": [1, 2]
}
6. Escape sekuentzia baliogabeak
JSON katean, alderantzizko barra batek escape bat hasten du. ", \ eta \n bezalako sekuentziak baliozkoak dira. C:\Users idatzitako Windows bidea ez: \U ez da JSON escape legalik. Bikoiztu alderantzizko barrak, bestela parser-a karaktere horretan gelditzen da.
Baliogabea
{"file":"C:\Users\Alex"}
Baliozkoa
{"file":"C:\\Users\\Alex"}
7. Iruzkinak JSON barruan
JSON estandarrak ez du iruzkinik. Konfigurazio-tresna batzuek // edo /* */ onartzen dute (JSONC, JSON5 eta antzekoak). Hori ez da JSON estandarra, eta JSON.parse-ek baztertzen du.
Baliogabea
{
// user name
"name": "Alex"
}
Zer esan nahi du Unexpected token-ek?
Parser-ak posizio horretan baimendu gabeko karaktere bat topatu du. Jakinarazitako lekua irakurketa gelditu den tokia da. Lehenago koma bat utzi baduzu, akatsak hurrengo propietatearen komatxora seinala dezake. Hitzez hitza runtime-aren arabera aldatzen da; ez espero nabigatzaile bakoitzak esaldi bera inprimatzea.
Zer esan nahi du Unexpected end of JSON input-ek?
Testua balioa osatu baino lehen amaitu da. Kausa ohikoak: } edo ] falta, sarrera moztua, gorputz hutsa edo API erantzun etena. Ez da akats bakarra.
Zergatik huts egiten du JSON.parse()-ek?
JSON.parse()-ek JSON testu baliozkoa soilik onartzen du. Honek arrakasta du:
const text = '{"name":"Alex"}';
const data = JSON.parse(text);
Honek huts egiten du, komatxo bakunak ez direlako JSON:
const text = "{'name':'Alex'}";
JSON.parse(text);
Errore-mezu zehatza JavaScript runtime-aren araberakoa da. Hartu mezua iradokizun gisa, eta aztertu komak, komatxoak eta parentesiak posizio horren inguruan.
JavaScript objektu-literala { name: 'Alex' } itxura izan dezake. JSON baliozkoak { "name": "Alex" } itxura izan behar du: komatxo bikoitzeko izenak eta kateak, amaierako komarik gabe, iruzkinik gabe.
- JSON testua
- Parser-ak tokenak irakurtzen ditu
- Datu baliozkoak edo Unexpected token
Nola aurkitu JSON akats bat azkar
Lan egin ordena honetan. Ez hasi fitxategi osoa berridazten.
- Igan JSON balioztatzaile batetik.
- Irakurri jakinarazitako lehen errorea.
- Begiratu pixka bat jakinarazitako posizioaren aurretik.
- Egiaztatu komak, batez ere amaierakoak eta falta direnak.
- Egiaztatu komatxoak: bikoitzak soilik.
- Egokitu { } eta [ ].
- Egiaztatu alderantzizko barra-escapeak kateetan.
- Kendu iruzkinak JSON zorrotza behar baduzu.
Zuzenketa ohikoen mapa azkarra:
| Arazoa | Zuzenketa |
|---|---|
| Amaierako koma | Ezabatu koma azken elementuaren ondoren. |
| Komatxo bakunak | Erabili komatxo bikoitzak izenetarako eta kateetarako. |
| Komatxorik gabeko gakoa | Bildu propietate-izena komatxo bikoitzetan. |
| Falta den koma | Jarri koma propietateen edo array-elementuen artean. |
| Falta den parentesia | Itxi { } eta [ ] bikote bakoitza. |
| Escape baliogabea | Erabili escape legal bat, edo bikoiztu alderantzizko barrak bideetan. |
| Iruzkina | Kendu // eta /* */ JSON estandarrerako. |
Balioztatu eta formateatu JSON nabigatzailean
NEXNARA JSON formatzailea eta konparaketa-ek JSON egiazta dezake gailu honetan.
Baliozta dezakezu, 2 tarte, 4 tarte edo tabulazioarekin edertu, minify, bi dokumentu alderatu (JSON Diff) eta .json fitxategi bat ireki. Analisiak JSON.parse erabiltzen du nabigatzailean, ez eval.
5 MB baino handiagoak diren dokumentuak motel senti daitezke. 15 MB baino handiagoa den testua ez da nabigatzailean prozesatzen, orrialdea erantzunkorra izan dadin.
JSON prozesamendua bera zure nabigatzailean gertatzen da. Testua ez da NEXNARA zerbitzarira bidaltzen tresna honetarako. Iragarkiek eta guneko beste eginbideek oraindik sarea erabiltzen dute; hori prozesamendutik bereizita dago.
JSON baliogabea egiaztatu behar duzu? Ireki JSON formatzailea eta konparaketa eta itsatsi testua.
FAQ
Zergatik dio nire JSON-ek Unexpected token?
Parser-ak han baimendu gabeko karaktere bat topatu du. Benetako akatsa—askotan falta den koma edo komatxo bakuna—posizio horren aurrean egon daiteke.
Amaierako komak onartzen dira JSON-en?
Ez. JSON estandarrak ez du onartzen koma azken propietatearen edo array-elementuaren ondoren. JavaScript objektu-literalek maiz onartzen dute.
JSON-ek komatxo bakunak erabil ditzake?
Ez. Propietate-izenek eta kateek komatxo bikoitzak erabili behar dituzte.
JSON-ek iruzkinak izan ditzake?
Ez JSON estandarrean. Tresna batzuek iruzkinak dituzten JSONC edo JSON5 onartzen dituzte; JSON.parse-ek hala ere baztertzen ditu.
Zergatik huts egiten du JSON.parse()-ek?
Kateak ez da JSON baliozkoa. Kausa ohikoak amaierako koma, komatxo bakunak, komatxorik gabeko gakoak, iruzkinak edo moztutako balioa dira. Mezu zehatza runtime-aren araberakoa da.
Nola egiazta dezaket JSON baliozkoa den?
Itsatsi JSON formatzailea eta konparaketa bezalako balioztatzaile batean, edo deitu JSON.parse kontsolan. Analisiak salbuespena jaurtitzen badu, testua ez da JSON baliozkoa.