fixmint
HI

सबसे आम JSON पार्स एरर के कारण और उनका समाधान

द्वारा · · 8 नवंबर 2026 को अपडेट किया गया · 5 मिनट पढ़ाई

ज़्यादातर JSON पार्स एरर कुछ आम गलतियों से होते हैं: ट्रेलिंग कॉमा, सिंगल कोट में लिखी स्ट्रिंग, कमेंट, बिना कोट वाली की (key), NaN या undefined जैसी वैल्यू, या किसी दस्तावेज़ से कॉपी किए गए घुमावदार कोट्स। JSON उस JavaScript से ज़्यादा सख़्त है जिससे वह मिलता-जुलता दिखता है, इसलिए जो कोड इंसान को ठीक लगता है, पार्सर उसे रद्द कर सकता है। एरर मैसेज एक लाइन और कॉलम की ओर इशारा करता है, और समाधान आम तौर पर उसी जगह पर या उससे ठीक पहले होता है।

JSON फ़ॉर्मेटरJSON पार्स नहीं हो रहामुफ़्त में करें

JSON के नियम

JSON दस्तावेज़ एक ही वैल्यू होता है: ब्रेस में लिखा ऑब्जेक्ट, ब्रैकेट में लिखी ऐरे, स्ट्रिंग, नंबर, true, false या null। इन वैल्यू के भीतर:

  • हर की और हर स्ट्रिंग सीधे डबल कोट्स में लिखी जाती है, जैसे "name"।
  • आइटम कॉमा से अलग होते हैं, और किसी ऑब्जेक्ट या ऐरे के आखिरी आइटम के बाद कॉमा नहीं होना चाहिए।
  • नंबर में आगे प्लस का चिह्न नहीं हो सकता, और NaN, Infinity तथा undefined न तो मान्य नंबर हैं न मान्य वैल्यू।
  • कमेंट बिल्कुल अनुमति नहीं है।
  • की स्ट्रिंग होनी चाहिए, इसलिए name: जैसी बिना कोट वाली की अमान्य है।

कुछ पार्सर डिफ़ॉल्ट रूप से इनमें से कुछ नियम ढीले रखते हैं, और कुछ टूल सुविधा के लिए कमेंट वाला JSON भी स्वीकार कर लेते हैं। यह ढिलाई समस्या को तब तक छिपाए रखती है जब तक फ़ाइल किसी सख़्त रीडर तक नहीं पहुँचती, इसलिए सख़्त रूप में ही लिखें।

एरर मैसेज कैसे पढ़ें

पार्सर उस पहली जगह की रिपोर्ट करते हैं जहाँ वे आगे नहीं बढ़ सके। मैसेज समस्या का नाम बताता है और एक स्थिति देता है, आम तौर पर एक लाइन और एक कॉलम। यहाँ एक छोटी फ़ाइल है जिसकी ऐरे में ट्रेलिंग कॉमा है और आखिरी प्रॉपर्टी के बाद भी एक कॉमा है:

{
  "name": "Ada",
  "tags": ["a", "b",],
}

Python इसके लिए लिखता है: "Illegal trailing comma before end of array: line 3 column 20"। अलग-अलग टूल में शब्द अलग होते हैं, और कुछ पुराने पार्सर सिर्फ़ "Unexpected token" लिखते हैं, साथ में एक अक्षर-ऑफ़सेट। बताई गई जगह पर जाएँ, फिर उससे ठीक पहले का अक्षर देखें। असली गलती अक्सर बताई गई जगह से एक-दो अक्षर पहले के कॉमा, कोट या ब्रेस में होती है।

Python पार्सर के कुछ और मैसेज और उनका आम मतलब:

  • '{'a': 1}' के लिए "Expecting property name enclosed in double quotes" का मतलब है कि की सिंगल कोट में है या बिना कोट के।
  • जिस जगह आप नंबर या स्ट्रिंग की उम्मीद कर रहे थे, वहाँ "Expecting value" अक्सर स्मार्ट कोट की ओर इशारा करता है, क्योंकि पार्सर उसे एक अनजान अक्षर समझता है।
  • "Expecting ',' delimiter" का आम तौर पर मतलब है दो आइटम के बीच कॉमा छूट गया है, या डेटा के बीच में कोई कमेंट है।

स्मार्ट कोट्स और कॉपी किया गया टेक्स्ट

स्मार्ट कोट्स सबसे उलझाने वाला मामला हैं, क्योंकि वे सीधे कोट्स से लगभग एक जैसे दिखते हैं। वर्ड प्रोसेसर, किसी वेब पेज या चैट मैसेज से कॉपी की गई JSON फ़ाइल में घुमावदार डबल कोट्स हो सकते हैं। फ़ाइल आपको सही लगती है और पार्स नहीं होती, क्योंकि पार्सर “x” को स्ट्रिंग की शुरुआत या अंत मानने के बजाय एक अनजान अक्षर समझता है।

छिपे हुए अक्षर भी इसी तरह की गड़बड़ी लाते हैं। दो वैल्यू के बीच का नो-ब्रेक स्पेस पार्सर के लिए सामान्य खाली जगह नहीं है। ढाँचे को हाथ से ठीक करने से पहले छिपे हुए अक्षर हटाएं का इस्तेमाल करें, और फिर कोट्स ठीक करें। घुमावदार कोट्स की गाइड बताती है कि इन्हें सुरक्षित तरीके से सीधा कैसे करें।

सिंगल कोट्स, कमेंट और बिना कोट वाली कीज़

कई डेवलपर JSON जैसा डेटा ऐसी भाषा में लिखते हैं जो ज़्यादा छूट देती है:

  • सिंगल कोट्स JavaScript और Python के लिटरल में मान्य हैं, पर JSON को डबल कोट्स चाहिए। {'a': 1} को {"a": 1} में बदलें।
  • // या /* */ जैसे कमेंट हटाने होंगे। अगर नोट्स ज़रूरी हैं, तो उन्हें अलग फ़ील्ड में रखें, या कॉन्फ़िगरेशन फ़ाइलों के लिए बना फ़ॉर्मेट इस्तेमाल करें।
  • बिना कोट वाली कीज़ JavaScript ऑब्जेक्ट लिटरल में आम हैं। उनमें कोट जोड़ें।
  • NaN और undefined JSON नहीं हैं। किसी गायब वैल्यू के लिए null इस्तेमाल करें, या अगर वैल्यू टेक्स्ट है तो स्ट्रिंग।

सब कुछ एक साथ बदलने वाले find-and-replace से सावधान रहें। हर सिंगल कोट को डबल कोट में बदलने से वह स्ट्रिंग टूट जाती है जिसमें अपॉस्ट्रॉफ़ी हो, जैसे "Ada's notes"। पहले टेक्स्ट में खोजें और बदलें में हर मिलान देखें, ताकि पता चले कौन से कोट बदलेंगे।

ढाँचा चरण-दर-चरण ठीक करें

  1. फ़ाइल को JSON फ़ॉर्मेटर में चिपकाएँ। फ़ॉर्मेट करने से ढाँचा साफ़ दिखता है, और एरर अपनी लाइन और कॉलम के साथ दिखता है। फिर Repair दबाएँ, जो कमेंट और ट्रेलिंग कॉमा हटा देता है। यह सिंगल कोट्स या घुमावदार कोट्स नहीं बदलता, इसलिए उन्हें आप खुद ठीक करें।
  2. सिर्फ़ पहली गलती ठीक करें, फिर दोबारा जाँचें। एक गलती नीचे कई और एरर पैदा कर सकती है।
  3. जाँचें कि हर खुलने वाले ब्रेस या ब्रैकेट का बंद होने वाला जोड़ा मौजूद है, और नेस्टिंग वैसी ही है जैसी आप चाहते हैं।
  4. अंतिम फ़ाइल को उसी पार्सर से जाँचें जिसे आपका एप्लिकेशन इस्तेमाल करता है, सिर्फ़ वेब टूल से नहीं। पार्सर में थोड़ा फ़र्क होता है।

जो फ़ाइल पार्स हो जाती है, वह ज़रूरी नहीं कि वही फ़ाइल हो जो आपने चाही थी। गायब फ़ील्ड या गलत टाइप की वैल्यू पकड़ने के लिए इसे JSON Schema के सामने जाँचें, या दो JSON दस्तावेज़ों की तुलना करें ताकि देख सकें कि दो संस्करणों के बीच क्या बदला।

खास स्थितियाँ

  • जनरेट की गई फ़ाइलों में ट्रेलिंग कॉमा। कुछ टूल ये लिख देते हैं। अगर आप स्ट्रिंग जोड़कर हाथ से JSON बनाते हैं, तो अपनी भाषा का सीरियलाइज़र इस्तेमाल करें, जो मान्य आउटपुट लिखता है।
  • डुप्लीकेट कीज़। JSON इन्हें अनुमति देता है, लेकिन ज़्यादातर पार्सर सिर्फ़ आखिरी वैल्यू रखते हैं। डुप्लीकेट कीज़ भविष्य की गड़बड़ी का बीज हैं।
  • बड़े नंबर। बहुत बड़े इंटीजर कुछ पार्सर में सटीकता खो सकते हैं, इसलिए अगर पहचानकर्ता (ID) इतने लंबे हैं कि पार्सर उन्हें सटीक नहीं दिखा सकता, तो उन्हें स्ट्रिंग के रूप में रखें। CSV से JSON गाइड भी IDs के बारे में यही बात कहती है।

त्वरित जवाब

मेरा JSON सही दिखता है, फिर भी क्यों फ़ेल होता है?

आम कारण हैं ट्रेलिंग कॉमा, सिंगल कोट्स, कमेंट, या किसी दस्तावेज़ से कॉपी किए गए घुमावदार कोट्स। एरर मैसेज की जगह और उससे ठीक पहले का अक्षर जाँचें।

क्या JSON में कमेंट हो सकते हैं?

नहीं। JSON स्टैंडर्ड कमेंट की अनुमति नहीं देता। उन्हें हटाएँ, या नोट्स को अपनी अलग फ़ील्ड में डालें। फ़ॉर्मेटर का Repair बटन उन्हें अपने-आप हटा देता है।

JSON में undefined की जगह क्या इस्तेमाल करूँ?

जब कोई वैल्यू जानबूझकर गायब हो, तो null इस्तेमाल करें, या की को पूरी तरह हटा दें। undefined एक JavaScript वैल्यू है और JSON में इसका कोई रूप नहीं है।

अंग्रेज़ी मूल से AI की मदद से अनुवादित।

टिप्पणियाँ

    अभी कोई टिप्पणी नहीं। पहली टिप्पणी आप करें।

    आपकी रेटिंग (वैकल्पिक)

    आपका ईमेल कभी दिखाया या सहेजा नहीं जाता।

    How to Remain Valuable When Intelligence Becomes Cheap का कवरHow to Remain Valuable When Intelligence Becomes Cheap

    224 पेज, इस पर कि जब AI ज़्यादातर बौद्धिक काम कर सकेगा, तब भी कौन-से मानवीय, आर्थिक और रणनीतिक फ़ायदे दुर्लभ बने रहेंगे।

    $3.84Gumroad पर पाएँअंग्रेज़ी में