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 विरुद्ध 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 फॉरमॅट / Diff मानक 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 विरुद्ध खरी दुरुस्ती

हे जोडे 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 फॉरमॅट / Diff ब्राउझरमध्ये JSON JSON.parse ने प्रमाणित करते—eval ने नाही.

प्रमाणित करा, 2 स्पेस, 4 स्पेस किंवा टॅबने सुंदर छापा, minify, कॉपी, डाउनलोड आणि .json अपलोड. JSON Diff नेस्टेड ऑब्जेक्ट आणि अ‍ॅरे, मार्ग, सारांश, फिल्टर आणि स्वॅप कव्हर करते. पार्सनंतर त्याच डेटाच्या सुंदर आणि minify प्रती समान तुलना होतात; ऑब्जेक्ट कळा नावाने तुलना होतात.

5 MB पेक्षा मोठा मजकूर मंद वाटू शकतो. 15 MB पेक्षा मोठा मजकूर ब्राउझरमध्ये प्रक्रिया होत नाही.

JSON प्रमाणीकरण आणि स्वरूपन तुमच्या ब्राउझरमध्ये होते. हे साधन JSON NEXNARA सर्व्हरला पाठवत नाही. जाहिराती आणि इतर साइट वैशिष्ट्ये अजून नेटवर्क वापरतात.

अपयशी स्ट्रिंग JSON फॉरमॅट / Diff मध्ये चिकटवा आणि अवतरण पुन्हा लिहण्यापूर्वी पहिली अक्षरे वाचा.

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 फॉरमॅट / Diff मध्ये चिकटवा. पार्स SyntaxError फेकले तर स्ट्रिंग वैध JSON नाही.

Tech Help

सामान्य JSON त्रुटी: शेवटचा स्वल्पविराम, अवतरण आणि Unexpected token

अवैध JSON दुरुस्त करा: शेवटचा स्वल्पविराम, एकेरी अवतरण, अवतरण नसलेल्या कळा आणि Unexpected token. JSON.parse का अपयशी होते आणि JSON कसे तपासायचे.

Tech Help

स्क्रीनशॉटसाठी JPG विरुद्ध PNG: कोणती लहान?

आशयाप्रमाणे स्क्रीनशॉटसाठी JPG किंवा PNG निवडा: UI आणि मजकूर अनेकदा PNG म्हणून तीक्ष्ण राहतो; फोटो जास्त असलेले फ्रेम JPEG म्हणून लहान होऊ शकतात.

Tech Help

प्रतिमा धूसर न होता फाईल आकार कसा कमी करावा

स्वीकार्य दिसणी ठेवून फोटो आणि प्रतिमेचा फाईल आकार कमी करा. आधी जास्त मोठी परिमाणे बदला, नंतर मध्यम कंप्रेस करा, नंतर जुळणारे फॉरमॅट निवडा.

Tech Help

Unix Timestamp ते तारीख: सेकंद, मिलिसेकंद आणि UTC समजावणी

Unix timestamp तारखेत बदला. सेकंद विरुद्ध मिलिसेकंद, UTC विरुद्ध स्थानिक वेळ, ISO 8601, आणि तारखेतून epoch वेळेकडे परत कसे जायचे.

Tech Help

Base64 फाईली मोठ्या का करतो?

Base64 सहसा बायनरी डेटा सुमारे एक तृतीयांश मोठा करतो. 3 बाइट ते 4 अक्षरांची रचना, पॅडिंग, Data URL चा अतिरिक्त भार, आणि तो आकार केव्हा फायदेशीर ते पाहा.