Tech Help

JSON.parse ஏன் "Unexpected token" என்கிறது?

உரை சரியான JSON இல்லாதபோது JSON.parse Unexpected token வீசுகிறது. ஒற்றை மேற்கோள், இறுதிக் காற்புள்ளி, HTML பதில்கள், பிழை நிலையைச் சரிபாருங்கள்.

விரைவு பதில்

உள்ளீடு சரியான JSON இல்லாதபோது JSON.parse() SyntaxError வீசுகிறது. “Unexpected token” பொதுவாக பாகுபடுத்தி அந்த அமைப்புப் புள்ளியில் அனுமதிக்கப்படாத எழுத்தை அடைந்தது என்பதைக் குறிக்கிறது.

பொதுவான காரணங்கள்: ஒற்றை மேற்கோள், இறுதிக் காற்புள்ளி, மேற்கோள் இல்லாத பண்புப் பெயர்கள், தவறான சர எஸ்கேப், JSON சுற்றி கூடுதல் உரை, அல்லது HTML அல்லது வேறு JSON அல்லாத உடலை JSON ஆகப் பாகுபடுத்துதல்.

சரியான பிழைச் சொற்கள் JavaScript இயந்திரம் மற்றும் உலாவிக்கு ஏற்ப மாறும். ஒவ்வொரு இயக்க நேரமும் “Unexpected token X in JSON at position N” அச்சிடும் என எதிர்பார்க்க வேண்டாம்.

இது JSON.parse Unexpected token சரிசெய்தல்: பிழை என்ன பொருள், நிலையை எப்படிப் படிப்பது, உடல் HTML ஆக இருக்கும்போது என்ன செய்வது. இறுதிக் காற்புள்ளி, மேற்கோள், Unexpected end பற்றிய விரிவான உள்ளடக்கம் பொதுவான JSON பிழைகள்: இறுதிக் காற்புள்ளி, மேற்கோள், Unexpected token.

JSON.parse() இல் “Unexpected token” என்றால் என்ன?

JSON.parse() க்கு JSON இலக்கணம் வேண்டும். தற்போதைய நிலையில் சட்டவிரோத எழுத்து SyntaxError வீசும். {“name”:“Alex”,} தவறானது: அந்தக் காற்புள்ளிக்குப் பின் பொருள் முடியாது. செய்தி உரையும் நிலையும் இயக்க நேரத்திற்கு ஏற்ப இன்னும் மாறும்.

JSON.parse() எந்தப் பிழையை வீசுகிறது?

தவறான JSON பொதுவாக SyntaxError வீசும். வகையை உறுதிப்படுத்த error.name பதிவு செய்யுங்கள். முழு error.message ஐ நிலையாக எழுத வேண்டாம்: இயந்திரங்களும் பதிப்புகளும் வேறு சொற்கள் பயன்படுத்தும்.

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

1. இரட்டை மேற்கோளுக்குப் பதில் ஒற்றை மேற்கோள்

{‘name’:‘Alex’} தவறான JSON. {“name”:“Alex”} சரியானது. JSON சரங்களும் பொருள் உறுப்புப் பெயர்களும் இரட்டை மேற்கோள் பயன்படுத்தும். const user = { name: ‘Alex’ } போன்ற JavaScript பொருள் லிட்டரல் சட்டபூர்வ JavaScript ஆக இருக்கலாம், ஆனால் JSON உரை அல்ல.

தவறானது

{'name':'Alex'}

சரியானது

{"name":"Alex"}

2. இறுதிக் காற்புள்ளிகள்

கடைசிப் பண்பு அல்லது அணி உருப்படிக்குப் பின் காற்புள்ளி நிலையான JSON இல் சரியானதல்ல. {“name”:“Alex”,“age”:30,} மற்றும் [1, 2, 3,] இரண்டும் தோல்வி. இதை Unexpected token காரணமாகக் கருதுங்கள்; பொதுவான JSON பிழைகள்: இறுதிக் காற்புள்ளி, மேற்கோள், Unexpected token இறுதிக் காற்புள்ளிகளை ஆழமாகக் கையாளும்.

தவறானது

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

சரியானது

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

3. மேற்கோள் இல்லாத பண்புப் பெயர்கள்

{ name: “Alex” } JavaScript பொருள் லிட்டரலாக இருக்கலாம். JSON இல் உறுப்புப் பெயர்கள் சரங்கள்; இரட்டை மேற்கோள் வேண்டும்: {“name”:“Alex”}.

தவறானது

{
  name: "Alex"
}

சரியானது

{
  "name": "Alex"
}

4. தவறான சர எஸ்கேப்

JSON உரையில் பின்சாய்வு எஸ்கேப்பைத் தொடங்கும். C:\Users\Alex போன்ற மூலப் பாதை தவறானது, ஏனெனில் \U சட்டபூர்வ எஸ்கேப் அல்ல. பின்சாய்வுகளை இரட்டிப்பாக்குங்கள். புரவலன்-மொழி சர எஸ்கேப்பை JSON எஸ்கேப்புடன் கலக்க வேண்டாம். பொதுவான JSON பிழைகள்: இறுதிக் காற்புள்ளி, மேற்கோள், Unexpected token இதை ஆழமாகக் கையாளும்.

தவறானது

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

சரியானது

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

5. JSON க்கு முன் அல்லது பின் கூடுதல் உரை

JSON.parse ஒரே JSON மதிப்பை எதிர்பார்க்கும். {“ok”:true} க்கு முன் Success: போன்ற முன்னொட்டு, அல்லது பின் done போன்ற பின்னொட்டு, முழுச் சரத்தையும் தவறாக்கும். ஒற்றை JSON மதிப்பைச் சுற்றியுள்ள முக்கியமற்ற வெண்வெளி அனுமதி. JSON மதிப்புக்கு முன் அல்லது பின் இடைவெளி தடை செய்யப்படவில்லை.

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

6. JSON க்குப் பதில் HTML பாகுபடுத்துதல்

HTML பக்கத்தில் response.json() அழைப்பது பொதுவான Unexpected token வழக்கு. தவறான endpoint, 404 அல்லது 500 HTML பக்கங்கள், உள்நுழைவு திருப்பங்கள், பதிலி உடல்கள், மாற்றுப் பக்கங்கள் அடிக்கடி குறியீட்டுடன் தொடங்கும். “Unexpected token < எப்போதும் HTML” மிகவும் கடுமையானது: < ஒரு குறிப்பு, ஆதாரம் அல்ல.

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

“Unexpected token <” பொதுவாக என்ன பொருள்?

JSON மதிப்புகள் பொதுவாக < இல் தொடங்காது. உடல் அல்லது இல் தொடங்கினால், < முதல் சட்டவிரோத எழுத்தாக இருக்கலாம். உள்ளூர் பிழைத்திருத்தத்தில் HTTP நிலை, Content-Type, மூல உடலைச் சரிபாருங்கள். இயந்திரச் சொற்கள் இன்னும் மாறும்.

பாகுபடுத்தும் முன் பதிலைச் சரிபாருங்கள்

fetch உடலை ஒருமுறை மட்டுமே பயன்படுத்தலாம். உள்ளூர் பிழைத்திருத்தத்தில் முதலில் text() படியுங்கள், குறுகிய முன்னொட்டைப் பாருங்கள், பின் அதே சரத்தை JSON.parse செய்யுங்கள். அதே பதிவில் response.json() பின் response.text() அழைக்க வேண்டாம். உணர்திறன் உற்பத்தி சுமையை இயல்பாகப் பதிவு செய்ய வேண்டாம்.

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

“at position 123” என்றால் என்ன?

சில இயந்திரங்கள் நிலை, வரி அல்லது நெடுவரிசை அறிவிக்கும். அருகில் தவறான மேற்கோள், காற்புள்ளி, அடைப்பு அல்லது எஸ்கேப் பாருங்கள். அந்தக் குறியீடு பாகுபடுத்தல் சிக்கலைக் கண்ட இடம்; உண்மையான காரணம் முன்னதாக இருக்கலாம். அது சரியான குற்றவாளி எழுத்து என உத்தரவாதம் இல்லை.

Unexpected token vs Unexpected end

Unexpected token என்றால் பாகுபடுத்தி எதிர்பார்க்காத எழுத்தைச் சந்தித்தது. Unexpected end மதிப்பு முடிவதற்கு முன் உள்ளீடு நின்றால் தோன்றலாம், எ.கா. மூடு அடைப்பு இல்லாத {“name”:“Alex”. சரியான சொற்கள் இயந்திரத்தைப் பொறுத்தது. பொதுவான JSON பிழைகள்: இறுதிக் காற்புள்ளி, மேற்கோள், Unexpected token முழுமையற்ற JSON ஐ விரிவாகக் கையாளும்.

{"name":"Alex"

JSON JavaScript பொருள் லிட்டரலுக்குச் சமமல்ல

JSON ஒரு தரவு வடிவம். JavaScript பொருள் லிட்டரல் JavaScript தொடரியல். மேற்கோள் இல்லாத விசைகள், ஒற்றை மேற்கோள், இறுதிக் காற்புள்ளியுள்ள JS பொருள் சரியான JSON உரை அல்ல. JSON.parse JavaScript பொருள் லிட்டரல்களைப் பாதுகாப்பாகப் பாகுபடுத்த முடியாது.

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

JSON இல் கருத்துரைகள் இருக்கலாமா?

நிலையான JSON கருத்துரைகளை ஆதரிக்காது. பொருளுக்குள் // வரி தவறானது. JSON5 மற்றும் ஒத்த நீட்டிப்புகள் வேறு வடிவங்கள். JSON வடிவமைத்து ஒப்பிடுங்கள் நிலையான JSON ஐ JSON.parse மூலம் சரிபார்க்கும்; JSON5 ஐ JSON ஆகக் கருதாது.

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

undefined, NaN, Infinity சரியான JSON ஆ?

இல்லை. JSON மதிப்புகள் பொருள், அணி, சரம், எண், true, false, null. undefined, NaN, Infinity அல்ல. மேல்நிலை மதிப்பு பொருள் அல்லது அணியாக இருக்க வேண்டியதில்லை: true, 123, “hello”, null சரியான JSON.

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

Unexpected token பிழையை படிப்படியாகச் சரிசெய்வது எப்படி

பிழைச் சரத்தில் அல்ல, மூலத்தில் வேலை செய்யுங்கள்:

  1. உள்ளீடு உண்மையில் JSON தான் என உறுதிப்படுத்துங்கள்—HTML, பதிவுகள் அல்லது JavaScript அல்ல.
  2. மூல உள்ளீட்டின் முதல் எழுத்துகளைப் பாருங்கள்.
  3. API இலிருந்து வந்தால் HTTP நிலை மற்றும் Content-Type சரிபாருங்கள். 200 அல்லது application/json இரண்டும் சரியான JSON உத்தரவாதம் அல்ல.
  4. தொடரியலை JSON பாகுபடுத்தியில் சரிபாருங்கள்.
  5. அறிவிக்கப்பட்ட நிலை, வரி அல்லது நெடுவரிசையைக் குறிப்பாகப் பயன்படுத்துங்கள், உத்தரவாத மூலக் காரணமாக அல்ல.
  6. அந்தப் பகுதிக்கு அருகில் மேற்கோள், காற்புள்ளி, அடைப்பு, கோட்டு அடைப்பு, எஸ்கேப் சரிபாருங்கள்.
  7. வடிவமைக்கப்பட்ட, சரிபார்க்கப்பட்ட நகலுடன் ஒப்பிடுங்கள்.
  8. வரிசைப்படுத்தி அல்லது endpoint ஐச் சரிசெய்யுங்கள். அறிவிக்கப்பட்ட டோக்கனை சீரற்ற முறையில் நீக்க வேண்டாம்.
மேற்கோளை சீரற்ற முறையில் மாற்றி JSON ஐ «சரிசெய்ய» வேண்டாம்

' ஐ " ஆக உலகளவில் மாற்றுவது சரங்களுக்குள் அப்போஸ்ட்ரோபி, ஏற்கனவே எஸ்கேப் செய்யப்பட்ட உரை, JSON அல்லாத மூலங்களை உடைக்கலாம். உண்மையான வரிசைப்படுத்தியிலிருந்து சரியான JSON உருவாக்குங்கள். eval ஐ JSON பாகுபடுத்தியாகக் கருத வேண்டாம்.

JavaScript இல் JSON உருவாக்கும்போது JSON.stringify() பயன்படுத்துங்கள்

கைமுறையாகச் சரங்களை இணைப்பதை விட JSON.stringify விரும்பத்தக்கது. அது வரிசைப்படுத்தும் மதிப்புகளுக்கு சரியான JSON உரை தரும். ஒவ்வொரு JavaScript மதிப்பும் பாதுகாக்கப்படாது: undefined, செயல்பாடுகள், சின்னங்களுக்கு சிறப்பு நடத்தை. அந்த விவரம் இங்கு வரம்புக்கு வெளியே.

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

தவறான JSON vs உண்மையான சரிசெய்தல்

இந்த இணைகள் JSON.parse மூலம் சரிபார்க்கப்பட்டவை. HTML க்கு சரிசெய்தல் பதில், தொடரியல் திருத்தம் அல்ல.

சிக்கல் தவறானது சரிசெய்தல்
ஒற்றை மேற்கோள் {'a':1} {"a":1}
இறுதிக் காற்புள்ளி {"a":1,} {"a":1}
மேற்கோள் இல்லாத விசை {a:1} {"a":1}
undefined {"a":undefined} {"a":null}
HTML உடல் <html>... endpoint மற்றும் மூலப் பதிலைச் சரிபாருங்கள். HTML ஐத் திருத்தி JSON ஆக்க வேண்டாம்.

எளிய Unexpected token முடிவு வழிகாட்டி

JSON.parse தோல்வியுற்றால், மேற்கோளை மீண்டும் எழுதும் முன் உங்களிடம் JSON உள்ளதா என முடிவு செய்யுங்கள்.

  • JSON.parse தோல்வி
  • API இலிருந்தா? நிலை, Content-Type, மூல உடலைச் சரிபாருங்கள்
  • JSON இல் தொடங்குகிறதா? இல்லையெனில் மூலம் அல்லது endpoint சரிசெய்யுங்கள்
  • ஆம் எனில் மேற்கோள், காற்புள்ளி, அடைப்பு, கோட்டு அடைப்பு, எஸ்கேப், ஆதரிக்கப்படாத மதிப்புகளைச் சரிபாருங்கள்
  • அறிவிக்கப்பட்ட நிலையைக் குறிப்பாகப் பயன்படுத்துங்கள்
  • மூலத்தைச் சரிசெய்து மீண்டும் பாகுபடுத்துங்கள்
Unexpected token ஆச்சரியத்தின் பெயர். உரையின் மூலம் அடிக்கடி உண்மையான சரிசெய்தல்.

பாகுபடுத்தும் அல்லது பயன்படுத்தும் முன் JSON சரிபாருங்கள்

NEXNARA JSON வடிவமைத்து ஒப்பிடுங்கள் உலாவியில் JSON ஐ JSON.parse மூலம் சரிபார்க்கும்—eval அல்ல.

சரிபார்க்கலாம், 2 இடைவெளி, 4 இடைவெளி அல்லது தத்தால் அழகுபடுத்தலாம், minify, நகலெடுக்கலாம், பதிவிறக்கலாம், .json பதிவேற்றலாம். JSON Diff உள்ளமை பொருள்கள் மற்றும் அணிகள், பாதைகள், சுருக்கம், வடிகட்டிகள், இடமாற்றம் கையாளும். பாகுபடுத்தலுக்குப் பின் அதே தரவின் அழகு மற்றும் minify நகல்கள் சமமாக ஒப்பிடப்படும்; பொருள் விசைகள் பெயரால் ஒப்பிடப்படும்.

5 MB ஐ விடப் பெரிய உரை மெதுவாக இருக்கலாம். 15 MB ஐ விடப் பெரிய உரை உலாவியில் செயலாக்கப்படாது.

JSON சரிபார்ப்பும் வடிவமைப்பும் உங்கள் உலாவியிலே நடக்கும். இந்தக் கருவி JSON ஐ NEXNARA சேவையகத்துக்கு அனுப்பாது. விளம்பரங்களும் பிற தள அம்சங்களும் இன்னும் பிணையத்தைப் பயன்படுத்தும்.

தோல்வியுற்ற சரத்தை JSON வடிவமைத்து ஒப்பிடுங்கள் இல் ஒட்டி, மேற்கோளை மீண்டும் எழுதும் முன் முதல் எழுத்துகளைப் படியுங்கள்.

FAQ

JSON.parse ஏன் Unexpected token என்கிறது?

பாகுபடுத்தி நின்ற புள்ளியில் உரை சரியான JSON அல்ல. வழக்கமான காரணங்கள் மேற்கோள், காற்புள்ளி, கூடுதல் உரை, அல்லது HTML போன்ற JSON அல்லாத உடல்.

JSON இல் Unexpected token < என்றால் என்ன?

முதல் சட்டவிரோத எழுத்து < ஆக இருக்கலாம். அது அடிக்கடி HTML பக்கத்தைச் சுட்டிக்காட்டும், ஆனால் ஒவ்வொரு வழக்கிலும் 404 அல்லது HTML ஆதாரம் அல்ல. நிலை, Content-Type, மூல உடலைச் சரிபாருங்கள்.

JSON இல் பிழை நிலையை எப்படிக் கண்டுபிடிப்பது?

இயந்திரம் நிலை, வரி அல்லது நெடுவரிசை அறிவித்தால் அருகில் பாருங்கள். உண்மையான தவறு முன்னதாக இருக்கலாம். குறிப்பாகப் பயன்படுத்தி பின் சரிபாருங்கள்.

JSON ஒற்றை மேற்கோள் பயன்படுத்தலாமா?

இல்லை. நிலையான JSON சரங்களும் உறுப்புப் பெயர்களும் இரட்டை மேற்கோள் பயன்படுத்தும்.

JSON இல் இறுதிக் காற்புள்ளி இருக்கலாமா?

இல்லை. நிலையான JSON கடைசிப் பண்பு அல்லது அணி உருப்படிக்குப் பின் காற்புள்ளியை அனுமதிக்காது.

சரம் சரியான JSON ஆ என எப்படிச் சரிபார்ப்பது?

try/catch இல் JSON.parse அழைக்கவும், அல்லது உரையை JSON வடிவமைத்து ஒப்பிடுங்கள் இல் ஒட்டவும். பாகுபடுத்தல் SyntaxError வீசினால் சரம் சரியான JSON அல்ல.

Tech Help

பொதுவான JSON பிழைகள்: இறுதிக் காற்புள்ளி, மேற்கோள், Unexpected token

தவறான JSON ஐ சரிசெய்யுங்கள்: இறுதிக் காற்புள்ளி, ஒற்றை மேற்கோள், மேற்கோள் இல்லாத விசைகள், Unexpected token. JSON.parse ஏன் தோல்வியுறுகிறது, JSON ஐ எப்படி சரிபார்ப்பது.

Tech Help

திரைப்பிடிப்புக்கு JPG vs PNG: எது சிறியது?

உள்ளடக்கத்தை வைத்துத் திரைப்பிடிப்புக்கு JPG அல்லது PNG தேர்வு செய்யுங்கள்: UI மற்றும் உரை பெரும்பாலும் PNG-இல் கூர்மையாக இருக்கும்; புகைப்படம் நிறைந்த சட்டங்கள் JPEG-இல் சிறியதாகலாம்.

Tech Help

படம் மங்காமல் கோப்பு அளவை எப்படிக் குறைப்பது

ஏற்கத்தக்க தோற்றத்தை வைத்துப் புகைப்படம் மற்றும் படக் கோப்பு அளவைக் குறைங்கள். முதலில் பெரிய பரிமாணங்களைச் சிறிதாக்குங்கள், பிறகு மிதமாகச் சுருக்குங்கள், பிறகு பொருந்தும் வடிவத்தைத் தேர்வு செய்யுங்கள்.

Tech Help

Unix Timestamp-ஐ தேதியாக: விநாடி, மில்லிவிநாடி, UTC விளக்கம்

Unix timestamp-ஐ தேதியாக மாற்றுங்கள். விநாடி vs மில்லிவிநாடி, UTC vs உள்ளூர் நேரம், ISO 8601, தேதியை epoch நேரத்துக்குத் திருப்பும் முறை.

Tech Help

Base64 கோப்புகளை ஏன் பெரிதாக்குகிறது?

Base64 பொதுவாக இருமத் தரவை சுமார் மூன்றில் ஒரு பங்கு பெரிதாக்குகிறது. 3 பைட்டுக்கு 4 எழுத்து அமைப்பு, நிரப்பு, Data URL கூடுதல் சுமை, அந்த அளவு எப்போது தகுதியானது எனப் பாருங்கள்.