होम·एरर संदेश

chrome · JavaScript

संदेश

SyntaxError: Unexpected end of JSON input

इसका मतलब

parser JSON पढ़ते-पढ़ते दस्तावेज़ के अंत तक पहुँच गया, और लगभग हमेशा body ख़ाली ही था। 204 No Content या बिना body वाली त्रुटि response पर res.json() बुलाना, response body को दो बार पढ़ना जिससे दूसरी बार ख़ाली आता है, या लिखते-लिखते कटी फ़ाइल पढ़ना। पहले पाठ के रूप में लें और parse से पहले जाँचें — const t = await res.text(); if (!t) return null; — इससे सटीक निदान मिलता है। JSON.parse(text || 'null') से ढक देना ख़ाली response को सामान्य बना देता है, इसलिए पहले पता करें कि server ने ख़ाली body क्यों भेजा।

सुधार

इसका एक-लाइन कमांड नहीं है। व्याख्या में लिखा है कि क्या देखना है।

कौन देता है
chrome
JavaScript
15

browser और node की त्रुटियाँ आमतौर पर यही बताती हैं कि क्या टूटा, यह नहीं कि वह मान ऐसा क्यों बना — आपने undefined पढ़ा, वह function नहीं था, वह JSON नहीं था — इसलिए सुधार की जगह उस पंक्ति से ऊपर है जिसने त्रुटि फेंकी, और ?. तथा डिफ़ॉल्ट मानों से केवल उस पंक्ति को चुप कराने पर वही समस्या और दूर जाकर, और कठिन रूप में लौट आती है।

एरर संदेश कैसे पढ़ें

  • पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
  • फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
  • संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
  • वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
  • कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।

अक्सर पूछे जाने वाले सवाल

Q. “SyntaxError: Unexpected end of JSON input” का क्या मतलब है?

parser JSON पढ़ते-पढ़ते दस्तावेज़ के अंत तक पहुँच गया, और लगभग हमेशा body ख़ाली ही था। 204 No Content या बिना body वाली त्रुटि response पर res.json() बुलाना, response body को दो बार पढ़ना जिससे दूसरी बार ख़ाली आता है, या लिखते-लिखते कटी फ़ाइल पढ़ना। पहले पाठ के रूप में लें और parse से पहले जाँचें — const t = await res.text(); if (!t) return null; — इससे सटीक निदान मिलता है। JSON.parse(text || 'null') से ढक देना ख़ाली response को सामान्य बना देता है, इसलिए पहले पता करें कि server ने ख़ाली body क्यों भेजा।

Q. इसे कैसे ठीक करें?

एक-लाइन कमांड नहीं है। ऊपर की व्याख्या में लिखा है कि क्या देखना है।

Q. यह कौन-सा औज़ार देता है?

chrome। यह JavaScript में आता है, और संदेश 6 शब्दों का है।

साथ आने वाले एरर