डेटा · 4 मिनट में पढ़ें ·
JSON अमान्य है? लगभग हर एरर के पीछे ये 7 गलतियाँ
आख़िर में कॉमा, सिंगल कोट, कमेंट और भी बहुत कुछ: वे छोटी चूकें जो JSON तोड़ देती हैं, उन्हें जल्दी कैसे पकड़ें और हर एक को कैसे ठीक करें।

"Unexpected token" और "Unexpected end of JSON input" डेवलपर्स को सबसे ज़्यादा दिखने वाले एरर में से हैं। JSON एक सख़्त फ़ॉर्मेट है, जिस JavaScript से यह निकला उससे कहीं ज़्यादा सख़्त, और लगभग हर विफलता कुछ गिनी-चुनी गलतियों में से किसी एक पर आकर रुकती है।
1. आख़िर में कॉमा
किसी ऑब्जेक्ट या ऐरे के आख़िरी आइटम के बाद कॉमा सबसे आम गलती है। JavaScript इसे मान लेता है; JSON स्टैंडर्ड नहीं।
{"name": "Ana", "age": 31,} ✗
{"name": "Ana", "age": 31} ✓
2. सिंगल कोट और 3. बिना कोट की कीज़
हर की और हर स्ट्रिंग डबल कोट में होनी चाहिए। {name: 'Ana'} सही JavaScript है लेकिन अमान्य JSON है; इसे {"name": "Ana"} लिखना होगा।
4. कमेंट
JSON में कमेंट नहीं होते। // और /* */ एरर हैं, जो JSON5 या JSONC में लिखी कॉन्फ़िग फ़ाइल, जैसे VS Code की सेटिंग्ज़, से कॉपी करने वालों को चौंका देता है।
5. ख़ास वैल्यू और 6. बिना एस्केप किए कैरेक्टर
undefined, NaN, Infinity और फ़ंक्शन JSON में नहीं होते; उनकी जगह null या कोई संख्या लिखें। स्ट्रिंग के अंदर डबल कोट \" के रूप में, बैकस्लैश \\ के रूप में और नई लाइन \n के रूप में लिखी जाती है। Windows पाथ एक क्लासिक जाल हैं: "C:\new" में नई लाइन है, बैकस्लैश के बाद n नहीं।
7. ब्रैकेट कम या ज़्यादा
बंद करने वाला } या ] छूट जाए तो एरर अक्सर इनपुट के बिल्कुल आख़िर में दिखता है, असली गलती से काफ़ी दूर। JSON को इंडेंटेशन के साथ फ़ॉर्मेट करने से तुरंत दिख जाता है कि कौन-सा लेवल टूटा है।
ऐसी गलतियाँ जो दिखती नहीं
कुछ अमान्य JSON स्क्रीन पर बिलकुल सही दिखता है:
- घुमावदार कोट्स। वर्ड प्रोसेसर, चैट ऐप या प्रेज़ेंटेशन से कॉपी किए गए टेक्स्ट में अक्सर सीधे डबल कोट्स की जगह “ और ” होते हैं। ये लगभग एक जैसे दिखते हैं, लेकिन JSON सिर्फ़ सीधा " कैरेक्टर स्वीकार करता है।
- बाइट ऑर्डर मार्क (BOM)। Windows के कुछ एडिटर फ़ाइल की शुरुआत में एक अदृश्य कैरेक्टर के साथ सेव करते हैं। JavaScript का JSON.parse और Python का json.loads दोनों इसे अस्वीकार करते हैं, और एरर पोज़िशन 0 बताता है।
- वेब पेजों से पेस्ट हुए नॉन-ब्रेकिंग स्पेस और दूसरे अदृश्य कैरेक्टर।
मान्य JSON जो फिर भी बग पैदा करता है
Python का json.dumps डिफ़ॉल्ट रूप से NaN और Infinity लिखता है, जिन्हें दूसरे पार्सर अस्वीकार करते हैं; इसे जल्दी पकड़ने के लिए allow_nan=False दें। बहुत बड़े पूर्णांक, जैसे डेटाबेस के 64-बिट ID, मान्य JSON हैं लेकिन JavaScript में 9007199254740991 से ऊपर उनकी सटीकता खो जाती है, इसलिए कई API उन्हें स्ट्रिंग के रूप में भेजते हैं। ज़्यादातर पार्सर डुप्लिकेट key स्वीकार करते हैं, लेकिन आख़िरी वैल्यू चुपचाप जीत जाती है।
एरर मैसेज कैसे पढ़ें
पार्सर वह जगह बताता है जहाँ उसने हार मानी, वह नहीं जहाँ आपने गलती की। छूटा हुआ कॉमा आमतौर पर अगली key की शुरुआत में बताया जाता है, और छूटा हुआ बंद ब्रैकेट इनपुट के बिलकुल आख़िर में। बताई गई पोज़िशन से ठीक पहले देखें।
{
"name": "Ana"
"age": 31 ← एरर यहाँ बताया जाता है (लाइन 3)
} छूटा हुआ कॉमा लाइन 2 के आख़िर में है
सटीक जगह ढूँढें
4Dev का JSON वैलिडेटर आपके टेक्स्ट को JSON स्टैंडर्ड (RFC 8259) के हिसाब से जाँचता है और पहली गलती की लाइन और कॉलम, सुधार के सुझाव के साथ बताता है। यह सिंटैक्स जाँचता है, अर्थ नहीं: मान्य JSON में भी आपके ऐप्लिकेशन के लिए गलत टाइप या कोई छूटा हुआ फ़ील्ड हो सकता है।