Tech Help
Mga Karaniwang Error sa JSON: Trailing Comma, Panipi, at Unexpected Token
Ayusin ang invalid na JSON: trailing comma, single quote, key na walang panipi, at Unexpected token. Tingnan kung bakit nabibigo ang JSON.parse at paano mag-validate ng JSON.
Karamihan ng error sa JSON ay mula sa mahigpit na syntax: trailing comma, single quote, pangalan ng property na walang panipi, nawawalang comma, hindi magkasuwatong bracket, maling escape, o komento.
Mukhang JavaScript object ang JSON, pero mas mahigpit ito. Kailangan ng double quote ang pangalan ng property at string.
Kung makita mo ang Unexpected token, ang naiulat na character ay maaaring kung saan tumigil ang pag-parse—hindi palaging kung saan nagsimula ang orihinal na mali.
Minarkahan ang JSON mo na invalid. Karaniwan itong maliit na isyu sa syntax, hindi sirang file format. Ang pitong pagkakamali sa ibaba ang sanhi ng karamihan ng Unexpected token.
Bakit Madaling Masira ang JSON?
Ang JSON ay format ng data na may mahigpit na syntax. Maaaring magmukhang magkapareho ang JavaScript object literal pero invalid pa rin ang JSON. Sa standard JSON, kailangan ng double quote ang pangalan ng property at string, hindi pinapayagan ang trailing comma, at hindi bahagi ng format ang komento.
1. Trailing Commas
Ang dagdag na comma pagkatapos ng huling property ang problema. Hindi ito pinapayagan ng standard JSON.
Invalid
{
"name": "Alex",
"age": 30,
}
Valid
{
"name": "Alex",
"age": 30
}
Pareho ang tuntunin sa array. Alisin ang comma pagkatapos ng huling item.
Invalid
[
"red",
"green",
]
Valid
[
"red",
"green"
]
2. Single Quote Imbes na Double Quote
Madalas tanggapin ng JavaScript ang single quote. Hindi sa JSON. Dapat gumamit ng double quote ang pangalan ng property at string value.
Invalid
{
'name': 'Alex'
}
Valid
{
"name": "Alex"
}
3. Pangalan ng Property na Walang Panipi
Sa JavaScript, minsan maisusulat ang name nang walang panipi. Sa JSON, bawat pangalan ng property ay dapat string na may double quote.
Invalid
{
name: "Alex",
age: 30
}
Valid
{
"name": "Alex",
"age": 30
}
4. Nawawalang Comma sa Pagitan ng Values
Kailangan ng comma sa pagitan ng properties at array items. Maaaring iulat ng parser ang Unexpected token sa susunod na panipi o brace, hindi sa nawawalang comma mismo.
Invalid
{
"name": "Alex"
"age": 30
}
Valid
{
"name": "Alex",
"age": 30
}
5. Kulang o Sobra ang Bracket at Brace
Gumagamit ang object ng { }. Gumagamit ang array ng [ ]. Madalas mabigo ang nested JSON kapag kulang ang ], sobra ang }, o napalitan ang dalawa. Bilangin ang magkapares na bukas at sara.
Invalid
{
"items": [1, 2
}
Valid
{
"items": [1, 2]
}
6. Invalid na Escape Sequence
Sa loob ng JSON string, nagsisimula ng escape ang backslash. Valid ang mga sequence tulad ng ", \ at \n. Hindi valid ang Windows path na C:\Users: hindi legal na JSON escape ang \U. Doblehin ang backslash, o titigil ang parser sa character na iyon.
Invalid
{"file":"C:\Users\Alex"}
Valid
{"file":"C:\\Users\\Alex"}
7. Mga Komento sa Loob ng JSON
Walang komento ang standard JSON. Tinatanggap ng ilang config tool ang // o /* */ (JSONC, JSON5, at katulad). Hindi iyon standard JSON, at tatanggihan ito ng JSON.parse.
Invalid
{
// user name
"name": "Alex"
}
Ano ang Ibig Sabihin ng Unexpected Token?
May nakitang character ang parser na hindi pinapayagan sa posisyong iyon. Ang naiulat na lugar ay kung saan tumigil ang pagbasa. Kung nakalimutan mo ang comma kanina, maaaring tumuro ang error sa panipi ng susunod na property. Iba-iba ang wording ayon sa runtime; huwag asahan na pareho ang pangungusap sa bawat browser.
Ano ang Ibig Sabihin ng Unexpected End of JSON Input?
Natapos ang teksto bago makumpleto ang value. Karaniwang sanhi ang nawawalang } o ], putol na input, walang laman na body, o naputol na tugon ng API. Hindi ito iisang bug lang.
Bakit Nabibigo ang JSON.parse()?
Tumatanggap lang ang JSON.parse() ng valid na JSON text. Magtatagumpay ito:
const text = '{"name":"Alex"}';
const data = JSON.parse(text);
Mabibigo ito, dahil hindi JSON ang single quote:
const text = "{'name':'Alex'}";
JSON.parse(text);
Nakadepende sa JavaScript runtime ang eksaktong mensahe ng error. Ituring ang mensahe bilang hint, tapos suriin ang comma, panipi, at bracket malapit sa posisyong iyon.
Maaaring magmukhang { name: 'Alex' } ang JavaScript object literal. Dapat magmukhang { "name": "Alex" } ang valid na JSON: pangalan at string na may double quote, walang trailing comma, walang komento.
- Teksto ng JSON
- Binabasa ng parser ang mga token
- Valid na data o Unexpected token
Paano Mabilisang Hanapin ang Error sa JSON
Gawin sa ganitong pagkakasunod. Huwag simulan sa muling pagsulat ng buong file.
- Patakbuhin ang JSON sa validator.
- Basahin ang unang naiulat na error.
- Tumingin nang bahagya bago ang naiulat na posisyon.
- Suriin ang mga comma, lalo na ang trailing at nawawala.
- Suriin ang panipi: double quote lang.
- Itugma ang { } at [ ].
- Suriin ang backslash escape sa mga string.
- Alisin ang komento kung kailangan mo ng strict JSON.
Mabilisang mapa ng karaniwang ayos:
| Problema | Ayos |
|---|---|
| Trailing comma | Tanggalin ang comma pagkatapos ng huling item. |
| Single quote | Gumamit ng double quote para sa pangalan at string. |
| Key na walang panipi | Balutin ng double quote ang pangalan ng property. |
| Nawawalang comma | Maglagay ng comma sa pagitan ng properties o array items. |
| Nawawalang bracket | Isara ang bawat pares ng { } at [ ]. |
| Invalid na escape | Gumamit ng legal na escape, o doblehin ang backslash sa path. |
| Komento | Alisin ang // at /* */ para sa standard JSON. |
I-validate at I-format ang JSON sa Browser
Maaaring suriin ng NEXNARA I-format at ikumpara ang JSON ang JSON sa device na ito.
Maaari kang mag-validate, mag-pretty-print gamit ang 2 space, 4 space, o tab, mag-minify, maghambing ng dalawang dokumento (JSON Diff), at magbukas ng .json file. Gumagamit ang pag-parse ng JSON.parse sa browser, hindi eval.
Maaaring bumagal ang mga dokumentong mas malaki sa 5 MB. Hindi pinoproseso sa browser ang tekstong mas malaki sa 15 MB, para manatiling tumutugon ang pahina.
Ang pagproseso mismo ng JSON ay nangyayari sa browser mo. Hindi ipinapadala ang teksto sa server ng NEXNARA para sa tool na ito. Gumagamit pa rin ng network ang ads at iba pang feature ng site; hiwalay iyon sa pagproseso.
Kailangan mong suriin ang invalid na JSON? Buksan ang I-format at ikumpara ang JSON at i-paste ang teksto.
FAQ
Bakit sinasabi ng JSON ko na Unexpected token?
May nakitang character ang parser na hindi pinapayagan sa lugar na iyon. Ang tunay na mali—madalas nawawalang comma o single quote—ay maaaring nakaupo bago ang posisyong iyon.
Pinapayagan ba ang trailing comma sa JSON?
Hindi. Hindi pinapayagan ng standard JSON ang comma pagkatapos ng huling property o array item. Madalas payagan ito ng JavaScript object literal.
Puwede bang gumamit ng single quote ang JSON?
Hindi. Dapat gumamit ng double quote ang pangalan ng property at string.
Puwede bang maglaman ng komento ang JSON?
Hindi sa standard JSON. Tinatanggap ng ilang tool ang JSONC o JSON5 na may komento; tatanggihan pa rin sila ng JSON.parse.
Bakit nabibigo ang JSON.parse()?
Hindi valid JSON ang string. Karaniwang sanhi ang trailing comma, single quote, key na walang panipi, komento, o putol na value. Nakadepende sa runtime ang eksaktong mensahe.
Paano ko masusuri kung valid ang JSON?
I-paste ito sa validator tulad ng I-format at ikumpara ang JSON, o tawagin ang JSON.parse sa console. Kung mag-throw ang pag-parse, hindi valid JSON ang teksto.