Tech Help

Gịnị kpatara JSON.parse ji ekwu "Unexpected token"?

JSON.parse na-atụ Unexpected token mgbe ederede abụghị JSON dị mma. Dozie otu akara okwu, kọma ikpeazụ, nzaghachi HTML, na ebe mmehie.

Azịza ngwa ngwa

JSON.parse() na-atụ SyntaxError mgbe ntinye abụghị JSON dị mma. “Unexpected token” n'ozuzu pụtara na onye nnyocha ruru mkpụrụedemede a na-anabataghị n'ebe ahụ n'usoro.

Ihe kpatara ya na-abụkarị otu akara okwu, kọma ikpeazụ, aha njirimara enweghị akara okwu, escape eriri adịghị mma, ederede ọzọ gburugburu JSON, ma ọ bụ nnyocha HTML ma ọ bụ ahụ ọzọ na-abụghị JSON dị ka JSON.

Okwu mmehie ziri ezi dị iche site na injin JavaScript na ihe nchọgharị. Echela na oge ọrụ ọ bụla na-ebipụta “Unexpected token X in JSON at position N”.

Nke a bụ idozi Unexpected token nke JSON.parse: ihe mmehie pụtara, otú e si agụ ebe, na ihe a ga-eme mgbe ahụ bụ HTML. Mkpochapụ sara mbara nke kọma ikpeazụ, akara okwu, na Unexpected end dị na Mmehie JSON ndị a na-ahụkarị: kọma ikpeazụ, akara okwu na Unexpected token.

Gịnị ka “Unexpected token” pụtara na JSON.parse()?

JSON.parse() chọrọ ụtọasụsụ JSON. Mkpụrụedemede iwu na-akwadoghị n’ebe dị ugbu a na-atụ SyntaxError. {“name”:“Alex”,} adịghị mma: mgbe kọma ahụ gasịrị ihe enweghị ike ịkwụsị. Ozi na ebe ka dị iche site n’oge ọrụ.

Kedu mmehie JSON.parse() na-atụ?

JSON adịghị mma n’ozuzu na-atụ SyntaxError. Dekọọ error.name iji kwenye ụdị. Edekwala error.message zuru ezu n’ụzọ siri ike: injin na ụdị na-eji okwu dị iche.

try {
  JSON.parse('{"name":"Alex",}');
} catch (error) {
  console.log(error.name);
  // SyntaxError
}

1. Iji otu akara okwu kama akara okwu abụọ

{‘name’:‘Alex’} bụ JSON adịghị mma. {“name”:“Alex”} dị mma. Eriri JSON na aha ndị otu ihe na-eji akara okwu abụọ. Literali ihe JavaScript dị ka const user = { name: ‘Alex’ } nwere ike ịbụ JavaScript iwu kwadoro ma ka abụghị ederede JSON.

Adịghị mma

{'name':'Alex'}

Dị mma

{"name":"Alex"}

2. Kọma ikpeazụ

Kọma mgbe njirimara ma ọ bụ ihe ndịdị ikpeazụ abụghị JSON ọkọlọtọ dị mma. {“name”:“Alex”,“age”:30,} na [1, 2, 3,] abụọ na-ada. Were nke a dị ka otu ihe kpatara Unexpected token; Mmehie JSON ndị a na-ahụkarị: kọma ikpeazụ, akara okwu na Unexpected token na-ekpuchi kọma ikpeazụ n’ime omimi.

Adịghị mma

{
  "name": "Alex",
  "age": 30,
}

Dị mma

{
  "name": "Alex",
  "age": 30
}
[1, 2, 3,]

3. Aha njirimara enweghị akara okwu

{ name: “Alex” } nwere ike ịbụ literali ihe JavaScript. Na JSON, aha ndị otu bụ eriri ma chọọ akara okwu abụọ: {“name”:“Alex”}.

Adịghị mma

{
  name: "Alex"
}

Dị mma

{
  "name": "Alex"
}

4. Escape eriri adịghị mma

N’ederede JSON ahịrị azụ na-amalite escape. Ụzọ a na-emeghị ka C:\Users\Alex adịghị mma n’ihi na \U abụghị escape iwu kwadoro. Mee ahịrị azụ abụọ. Ejikọla escape asụsụ-ọbịa na escape JSON. Mmehie JSON ndị a na-ahụkarị: kọma ikpeazụ, akara okwu na Unexpected token na-ekpuchi nke a n’ime omimi.

Adịghị mma

{"file":"C:\Users\Alex"}

Dị mma

{"file":"C:\\Users\\Alex"}

5. Ederede ọzọ tupu ma ọ bụ mgbe JSON gasịrị

JSON.parse na-atụ anya otu uru JSON. Ntinye dị ka Success: tupu {“ok”:true}, ma ọ bụ njedebe dị ka done mgbe ya gasịrị, na-eme ka eriri niile adịghị mma. Oghere na-enweghị isi gburugburu otu uru JSON ka a na-anabata. A naghị amachibido JSON inwe oghere tupu ma ọ bụ mgbe uru gasịrị.

Success:
{"ok":true}
{"ok":true}
done

6. Nnyocha HTML kama JSON

Ịkpọ response.json() n’ibe HTML bụ ikpe Unexpected token a na-ahụkarị. Endpoint ezighi ezi, ibe HTML 404 ma ọ bụ 500, ntụgharị nbanye, ahụ nnọchianya, na ibe ọzọ na-amalitekarị site na akara. “Unexpected token < mgbe niile pụtara HTML” siri ike nke ukwuu: < bụ ntụziaka, ọ bụghị ihe akaebe.

fetch('/api/data')
  .then(response => response.json())

Gịnị ka “Unexpected token <” na-abụkarị pụtara?

Uru JSON anaghị amalitekarị site na <. Ọ bụrụ na ahụ malitere site na ma ọ bụ , < nwere ike ịbụ mkpụrụedemede mbụ iwu na-akwadoghị. N’ime idozi mpaghara, lelee ọnọdụ HTTP, Content-Type, na ahụ a na-emeghị. Okwu injin ka dị iche.

Lelee nzaghachi tupu ịnyocha ya

Ahụ fetch nwere ike iji naanị otu ugboro. N’ime idozi mpaghara, gụọ text() buru ụzọ, lelee ntinye dị mkpirikpi, wee JSON.parse otu eriri ahụ. Akpọla response.json() wee response.text() n’otu nzaghachi. Edekọla ibu mmepụta nwere mmetụta dị ka ndabara.

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);
}

Gịnị ka “at position 123” pụtara?

Ụfọdụ injin na-akọ ebe, ahịrị, ma ọ bụ kọlụm. Chọọ akara okwu, kọma, ngịga, ma ọ bụ escape adịghị mma n’akụkụ. Nọmba ahụ bụ ebe nnyocha hụrụ nsogbu; ihe kpatara ya n’ezie nwere ike ịbụ tupu. A kwadoghị na ọ bụ mkpụrụedemede mmehie ziri ezi.

Unexpected token vs Unexpected end

Unexpected token pụtara na onye nnyocha hụrụ mkpụrụedemede ọ na-atụghị anya. Unexpected end nwere ike ịpụta mgbe ntinye kwụsịrị tupu uru ezuo, dị ka na {“name”:“Alex” na-enweghị ngịga mmechi. Okwu ziri ezi dabere n’injin. Mmehie JSON ndị a na-ahụkarị: kọma ikpeazụ, akara okwu na Unexpected token na-ekpuchi JSON ezughị ezu n’ụzọ sara mbara.

{"name":"Alex"

JSON abụghị otu literali ihe JavaScript

JSON bụ ụdị data. Literali ihe JavaScript bụ ụtọasụsụ JavaScript. Ihe JS nwere igodo enweghị akara okwu, otu akara okwu, na kọma ikpeazụ abụghị ederede JSON dị mma. JSON.parse enweghị ike inyocha literali ihe JavaScript n’enweghị nsogbu.

const data = {
  name: 'Alex',
  active: true,
};
{
  "name": "Alex",
  "active": true
}

JSON nwere ike ịnwe nkọwa?

JSON ọkọlọtọ anaghị akwado nkọwa. Ahịrị // n’ime ihe adịghị mma. JSON5 na ndọtị yiri ya bụ ụdị ọzọ. Hazie ma tụnyere JSON na-enyocha JSON ọkọlọtọ site na JSON.parse ma anaghị ewere JSON5 dị ka JSON.

{
  // user name
  "name": "Alex"
}

undefined, NaN, na Infinity ọ bụ JSON dị mma?

Mba. Uru JSON bụ ihe, ndịdị, eriri, ọnụọgụ, true, false, na null. undefined, NaN, na Infinity abụghị. Uru elu ekwesịghị ịbụ ihe ma ọ bụ ndịdị: true, 123, “hello”, na null bụ JSON dị mma.

{"a":undefined}
{"a":NaN}
{"a":Infinity}
true
123
"hello"
null

Otu esi edozi mmehie Unexpected token n’usoro

Rụọ ọrụ n’isi iyi, ọ bụghị n’eriri mmehie:

  1. Kwenye na ntinye bụ JSON n’ezie, ọ bụghị HTML, ndekọ, ma ọ bụ JavaScript.
  2. Lelee mkpụrụedemede mbụ nke ntinye a na-emeghị.
  3. Ọ bụrụ na ọ bịara site na API, lelee ọnọdụ HTTP na Content-Type. Ma 200 ma application/json anaghị ekwe nkwa JSON dị mma.
  4. Nyochaa ụtọasụsụ n’onye nnyocha JSON.
  5. Jiri ebe, ahịrị, ma ọ bụ kọlụm a kọrọ dị ka ntụziaka, ọ bụghị dị ka ihe kpatara mgbọrọgwụ a kwadoro.
  6. Lelee akara okwu, kọma, ngịga, ngịga nwere akụkụ anọ, na escape n’akụkụ ebe ahụ.
  7. Tụnyere ya na mbipụta a haziri ma nyochaa.
  8. Mezie onye nhazi ma ọ bụ endpoint. Ehichapụla akara a kọrọ n’enweghị usoro.
Emeziela JSON site n'ịgbanwe akara okwu n'enweghị usoro

Nchịkọta ụwa nke ' gaa " nwere ike imebi apostrophe n'ime eriri, ederede a gbapụrụla, na isi iyi na-abụghị JSON. Mepụta JSON dị mma site n'onye nhazi n'ezie. Ewerela eval dị ka onye nnyocha JSON.

Jiri JSON.stringify() mgbe ị na-emepụta JSON na JavaScript

Họrọ JSON.stringify karịa ịjikọ eriri n’aka. Ọ na-ewepụta ederede JSON dị mma maka uru ọ na-ahazi. Ọ naghị edebe uru JavaScript ọ bụla: undefined, ọrụ, na akara nwere omume pụrụ iche. Nkọwa ahụ adịghị n’ókè ebe a.

const data = {
  name: "Alex",
  active: true
};
const json = JSON.stringify(data);
// {"name":"Alex","active":true}

JSON adịghị mma vs ndozi n’ezie

A lelere ụzọ ndị a site na JSON.parse. Maka HTML, ndozi bụ nzaghachi, ọ bụghị ndezi ụtọasụsụ.

Nsogbu Adịghị mma Ndozi
Otu akara okwu {'a':1} {"a":1}
Kọma ikpeazụ {"a":1,} {"a":1}
Igodo enweghị akara okwu {a:1} {"a":1}
undefined {"a":undefined} {"a":null}
Ahụ HTML <html>... Lelee endpoint na nzaghachi a na-emeghị. Edezila HTML ka ọ bụrụ JSON.

Ntuziaka mkpebi Unexpected token dị mfe

Ọ bụrụ na JSON.parse dara, kpebie ma ị nwere JSON tupu idegharị akara okwu.

  • JSON.parse dara
  • Site na API? Lelee ọnọdụ, Content-Type, na ahụ a na-emeghị
  • Ọ na-amalite na JSON? Ọ bụrụ na ọ bụghị, mezie isi iyi ma ọ bụ endpoint
  • Ọ bụrụ eee, nyochaa akara okwu, kọma, ngịga, ngịga nwere akụkụ anọ, escape, uru a na-akwadoghị
  • Jiri ebe a kọrọ dị ka ntụziaka
  • Mezie isi iyi, wee nyochaa ọzọ
Unexpected token na-akpọ ihe ijuanya aha. Isi iyi nke ederede na-abụkarị ndozi n'ezie.

Nyochaa JSON tupu nnyocha ma ọ bụ iji ya

NEXNARA Hazie ma tụnyere JSON na-enyocha JSON na ihe nchọgharị site na JSON.parse—ọ bụghị eval.

Nyochaa, mee ka ọ mara mma site na oghere 2, oghere 4, ma ọ bụ taabụ, minify, detuo, budata, ma bulite .json. JSON Diff na-ekpuchi ihe na ndịdị etinyere n’ime, ụzọ, nchịkọta, nzacha, na mgbanwe. Mgbe nnyocha gasịrị, mbipụta mara mma na minify nke otu data na-atụnyere nhata; igodo ihe ka a na-atụnyere site n’aha.

Ederede karịrị 5 MB nwere ike ịdị nwayọ. Ederede karịrị 15 MB anaghị eme na ihe nchọgharị.

Nnyocha na nhazi JSON na-eme na ihe nchọgharị gị. Ngwá ọrụ a anaghị ezipu JSON na sava NEXNARA. Mgbasa ozi na atụmatụ saịtị ndị ọzọ ka na-eji netwọk.

Tinye eriri dara n’ime Hazie ma tụnyere JSON ma gụọ mkpụrụedemede mbụ tupu idegharị akara okwu.

FAQ

Gịnị kpatara JSON.parse ji ekwu Unexpected token?

Ederede abụghị JSON dị mma n’ebe onye nnyocha kwụsịrị. Ihe kpatara ya na-abụkarị akara okwu, kọma, ederede ọzọ, ma ọ bụ ahụ na-abụghị JSON dị ka HTML.

Gịnị ka Unexpected token < na JSON pụtara?

Mkpụrụedemede mbụ iwu na-akwadoghị nwere ike ịbụ <. Nke ahụ na-arụtakarị ibe HTML, mana ọ bụghị ihe akaebe nke 404 ma ọ bụ HTML n’ọnọdụ ọ bụla. Lelee ọnọdụ, Content-Type, na ahụ a na-emeghị.

Otu esi m chọta ebe mmehie na JSON?

Ọ bụrụ na injin kọọ ebe, ahịrị, ma ọ bụ kọlụm, lelee n’akụkụ. Mmehie n’ezie nwere ike ịbụ tupu. Jiri ya dị ka ntụziaka, wee nyochaa.

JSON nwere ike iji otu akara okwu?

Mba. Eriri JSON ọkọlọtọ na aha ndị otu na-eji akara okwu abụọ.

JSON nwere ike ịnwe kọma ikpeazụ?

Mba. JSON ọkọlọtọ anaghị anabata kọma mgbe njirimara ma ọ bụ ihe ndịdị ikpeazụ.

Otu esi m nyochaa ma eriri ọ bụ JSON dị mma?

Kpọọ JSON.parse na try/catch, ma ọ bụ tinye ederede n’ime Hazie ma tụnyere JSON. Ọ bụrụ na nnyocha tụpụ SyntaxError, eriri abụghị JSON dị mma.