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.

Mabilis na sagot

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.

Hindi Pareho ang JSON sa JavaScript Object

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
Ang marka ng error ay kung saan tumigil ang pag-parse, na maaaring pagkatapos ng tunay na mali.

Paano Mabilisang Hanapin ang Error sa JSON

Gawin sa ganitong pagkakasunod. Huwag simulan sa muling pagsulat ng buong file.

  1. Patakbuhin ang JSON sa validator.
  2. Basahin ang unang naiulat na error.
  3. Tumingin nang bahagya bago ang naiulat na posisyon.
  4. Suriin ang mga comma, lalo na ang trailing at nawawala.
  5. Suriin ang panipi: double quote lang.
  6. Itugma ang { } at [ ].
  7. Suriin ang backslash escape sa mga string.
  8. Alisin ang komento kung kailangan mo ng strict JSON.

Mabilisang mapa ng karaniwang ayos:

Problema Ayos
Trailing commaTanggalin ang comma pagkatapos ng huling item.
Single quoteGumamit ng double quote para sa pangalan at string.
Key na walang panipiBalutin ng double quote ang pangalan ng property.
Nawawalang commaMaglagay ng comma sa pagitan ng properties o array items.
Nawawalang bracketIsara ang bawat pares ng { } at [ ].
Invalid na escapeGumamit ng legal na escape, o doblehin ang backslash sa path.
KomentoAlisin 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.