JSON क्या है?
JSON (JavaScript Object Notation) स्ट्रक्चर्ड डेटा के आदान-प्रदान के लिए एक हल्का टेक्स्ट फ़ॉर्मेट है। यह डेटा को नेस्टेड ऑब्जेक्ट और वैल्यू की ऐरे के रूप में दिखाता है, इंसान इसे पढ़ सकते हैं, और हर मुख्य प्रोग्रामिंग लैंग्वेज इसे पार्स कर सकती है — इसीलिए लगभग हर वेब API JSON भेजता और लेता है।
यह गाइड बताती है कि वैध JSON लिखने के लिए कौन-सा सिंटैक्स चाहिए, कौन-सी गलतियाँ "Unexpected token" एरर देती हैं, ब्राउज़र में JSON को फ़ॉर्मेट, वैलिडेट और कन्वर्ट कैसे करें, और कब कोई दूसरा फ़ॉर्मेट बेहतर है।
JSON सिंटैक्स: छह वैल्यू टाइप
एक JSON डॉक्यूमेंट एक अकेली वैल्यू होता है। वह वैल्यू आमतौर पर ऑब्जेक्ट या ऐरे होती है, लेकिन स्टैंडर्ड (RFC 8259) टॉप लेवल पर छह में से कोई भी टाइप अनुमति देता है।
- Object — ब्रेसेस के अंदर key/value जोड़ों का सेट: {"id": 7, "name": "Layla"}। Key डबल कोट्स में स्ट्रिंग होनी चाहिए।
- Array — ब्रैकेट के अंदर वैल्यू की क्रमबद्ध लिस्ट: ["admin", "editor"]।
- String — डबल कोट्स में टेक्स्ट, कोट्स, बैकस्लैश और कंट्रोल कैरेक्टर के लिए बैकस्लैश एस्केप के साथ: "line one\nline two"।
- Number — पूर्णांक या दशमलव, वैकल्पिक एक्सपोनेंट के साथ: 42, -3.5, 1.2e10। आगे शून्य नहीं, hex नहीं, NaN या Infinity नहीं।
- Boolean — true और false (छोटे अक्षरों में)।
- null — लिटरल null, यानी "कोई वैल्यू नहीं"।
{
"user": { "id": 7, "name": "Layla", "active": true },
"roles": ["admin", "editor"],
"lastLogin": null,
"balance": 1250.75
}वे नियम जो ज़्यादातर JSON एरर की वजह हैं
JSON JavaScript जैसा दिखता है लेकिन कहीं ज़्यादा सख़्त है। लगभग हर "Unexpected token" या "Unexpected end of JSON input" एरर इनमें से किसी नियम से आता है।
- Key और स्ट्रिंग में सिर्फ़ डबल कोट्स। 'सिंगल कोट्स' अमान्य हैं।
- ट्रेलिंग कॉमा नहीं: [1, 2, 3,] और {"a": 1,} एरर हैं।
- कमेंट नहीं। डॉक्यूमेंट में कहीं भी // या /* */ की अनुमति नहीं।
- Key कोट्स में होनी चाहिए: {name: "Layla"} JavaScript है, JSON नहीं।
- नंबर आगे शून्य (007) से शुरू नहीं हो सकते या दशमलव बिंदु (5.) पर ख़त्म नहीं हो सकते।
- डॉक्यूमेंट में ठीक एक टॉप-लेवल वैल्यू होनी चाहिए — दो ऑब्जेक्ट अगल-बगल वैध JSON नहीं हैं (वह JSON Lines है)।
- एन्कोडिंग UTF-8 है। फ़ाइल की शुरुआत में byte-order mark कई पार्सर तोड़ देता है।
JSON को फ़ॉर्मेट (प्रिटी-प्रिंट) कैसे करें
API आमतौर पर JSON मिनिफ़ाइड भेजते हैं — हर स्पेस और लाइन ब्रेक हटाकर — क्योंकि वह छोटा होता है। फ़ॉर्मेटिंग इंडेंटेशन वापस जोड़ती है ताकि स्ट्रक्चर दिखे। टेक्स्ट को फ़ॉर्मेटर में पेस्ट करें, 2-स्पेस, 4-स्पेस या टैब इंडेंटेशन चुनें, और नतीजा कॉपी करें; एक अच्छा फ़ॉर्मेटर किसी भी सिंटैक्स एरर की सटीक लाइन और कॉलम भी बताता है और ऑब्जेक्ट की key सॉर्ट कर सकता है ताकि दो डॉक्यूमेंट की तुलना हो सके।
कोड में, JavaScript में JSON.stringify(value, null, 2), Python में json.dumps(value, indent=2) और कमांड लाइन पर jq . file.json यही काम करते हैं।
JSON को वैलिडेट कैसे करें
वैलिडेशन के दो स्तर हैं। सिंटैक्स वैलिडेशन जाँचता है कि टेक्स्ट सही-बना JSON है — हर ब्रैकेट बंद है और ऊपर का हर नियम माना गया है। स्कीमा वैलिडेशन आगे जाकर स्ट्रक्चर को JSON Schema से जाँचता है: कौन-सी key ज़रूरी हैं, हर वैल्यू का टाइप क्या होना चाहिए, अनुमत रेंज और पैटर्न।
ऐसे पेलोड को डिबग करते समय सिंटैक्स वैलिडेशन इस्तेमाल करें जो पार्स नहीं होता, और स्कीमा वैलिडेशन तब जब आपके पास API कॉन्ट्रैक्ट हो और आप उससे भटकने वाले रिस्पॉन्स पकड़ना चाहें।
आज़माएँ: JSON वैलिडेटर आज़माएँ: JSON Schema वैलिडेटर आज़माएँ: JSON Schema जनरेटर
JSON vs XML vs YAML
JSON ने डिफ़ॉल्ट वेब फ़ॉर्मेट के रूप में XML की जगह ली क्योंकि यह छोटा है, ज़्यादातर लैंग्वेज के डेटा स्ट्रक्चर पर सीधे मैप होता है और उपयोगी होने के लिए किसी स्कीमा की ज़रूरत नहीं। XML एंटरप्राइज़ और SOAP सिस्टम में अब भी आम है और एट्रिब्यूट, नेमस्पेस और कमेंट सपोर्ट करता है जो JSON में नहीं हैं।
YAML JSON का सुपरसेट है जो इंसानों के लिखने के लिए बना है — कॉन्फ़िग फ़ाइल, CI पाइपलाइन, Kubernetes मैनिफ़ेस्ट। इसमें कमेंट चलते हैं और ज़्यादातर पंक्चुएशन नहीं होता, लेकिन व्हाइटस्पेस-संवेदनशीलता इसे मशीन-टू-मशीन एक्सचेंज के लिए ख़राब विकल्प बनाती है। सीधा नियम: API और स्टोरेज के लिए JSON, कॉन्फ़िगरेशन के लिए YAML, और XML तब जब सिस्टम माँगे।
आज़माएँ: JSON से YAML आज़माएँ: JSON से XML आज़माएँ: XML से JSON आज़माएँ: YAML फ़ॉर्मेटर आज़माएँ: XML फ़ॉर्मेटर आज़माएँ: XML वैलिडेटर
JSON को CSV, SQL और दूसरे फ़ॉर्मेट में बदलना
ऑब्जेक्ट की फ़्लैट JSON ऐरे साफ़-साफ़ CSV में बदलती है: हर ऑब्जेक्ट एक रो और हर key एक कॉलम बन जाती है। नेस्टेड ऑब्जेक्ट को पहले फ़्लैटन करना पड़ता है (user.address.city नाम का कॉलम बनता है)। यही शेप SQL INSERT स्टेटमेंट पर भी मैप होती है, जो API डेटा को एनालिसिस के लिए डेटाबेस में लोड करने का सबसे तेज़ तरीका है।
आज़माएँ: JSON से CSV आज़माएँ: CSV से JSON आज़माएँ: JSON से SQL आज़माएँ: JSON फ़्लैटन / अनफ़्लैटन
बड़े JSON डॉक्यूमेंट के साथ काम करना
हज़ारों लाइन वाले डॉक्यूमेंट को पढ़ने का व्यावहारिक तरीका ट्री व्यूअर है: जो नहीं चाहिए उसे कोलैप्स करें, एक बार में एक ब्रांच खोलें और किसी भी वैल्यू का JSONPath कॉपी करें। प्रोग्रामैटिक रूप से खास वैल्यू खोजने या निकालने के लिए $.users[?(@.active)].email जैसे JSONPath एक्सप्रेशन ठीक वही नोड चुनते हैं जो आप चाहते हैं।
आज़माएँ: JSON ट्री व्यूअर आज़माएँ: JSON Path टेस्टर आज़माएँ: JSON डिफ़
अक्सर पूछे जाने वाले सवाल
क्या JSON एक प्रोग्रामिंग लैंग्वेज है?
नहीं। JSON एक डेटा फ़ॉर्मेट है — स्ट्रक्चर्ड वैल्यू को टेक्स्ट के रूप में लिखने का तरीका। इसमें वेरिएबल, फ़ंक्शन या लॉजिक नहीं होते। यह JavaScript ऑब्जेक्ट सिंटैक्स से निकला है लेकिन किसी भी लैंग्वेज से स्वतंत्र है।
JSON का फ़ाइल एक्सटेंशन क्या है?
.json एक्सटेंशन, और MIME टाइप application/json। JSON Lines फ़ाइल (हर लाइन पर एक JSON वैल्यू) .jsonl या .ndjson इस्तेमाल करती हैं।
क्या JSON में कमेंट हो सकते हैं?
स्टैंडर्ड JSON में नहीं। कुछ टूल्स ढीला डायलेक्ट (JSONC, JSON5) स्वीकार करते हैं जिसमें कमेंट और ट्रेलिंग कॉमा चलते हैं, लेकिन API और ज़्यादातर पार्सर उन्हें रिजेक्ट करते हैं।
मेरा JSON "Unexpected token" के साथ फ़ेल क्यों होता है?
पार्सर को ऐसा कैरेक्टर मिला जिसकी उसे उम्मीद नहीं थी — अक्सर ट्रेलिंग कॉमा, सिंगल-कोट स्ट्रिंग, बिना कोट की key या कमेंट। वैलिडेटर सटीक लाइन और कॉलम दिखाता है।
क्या JSON को ऑनलाइन टूल में पेस्ट करना सुरक्षित है?
सिर्फ़ तब जब टूल उसे लोकली प्रोसेस करे। Mutqan के JSON टूल्स पूरी तरह आपके ब्राउज़र में चलते हैं और जो आप पेस्ट करते हैं उसे कभी अपलोड नहीं करते, इसलिए टोकन या निजी डेटा वाले API रिस्पॉन्स आपकी मशीन पर ही रहते हैं।
JSON और JavaScript ऑब्जेक्ट में क्या फ़र्क़ है?
JavaScript ऑब्जेक्ट मेमोरी में रहता है और फ़ंक्शन, undefined, Date और रेफ़रेंस रख सकता है; JSON सिर्फ़ छह वैल्यू टाइप वाला टेक्स्ट सीरियलाइज़ेशन है। JSON.parse टेक्स्ट को ऑब्जेक्ट बनाता है; JSON.stringify उल्टा करता है।
इस गाइड में बताए गए टूल्स
अपने ब्राउज़र में ही JSON को तुरंत फ़ॉर्मेट, सुंदर और वैलिडेट करें, मनचाहे इंडेंटेशन के साथ।
JSON सिंटैक्स वैलिडेट करें और गलतियों की सटीक जगह के साथ सुधार के उपयोगी सुझाव पाएँ।
JSON को कोलैप्सिबल ट्री के रूप में देखें — पाथ, टाइप और वैल्यू की संख्या के साथ।
पेलोड का साइज़ घटाने के लिए स्पेस हटाकर JSON को मिनिफ़ाई करें।
दो JSON डॉक्यूमेंट की सिमैंटिक तुलना करें और जोड़ी गई, हटाई गई तथा बदली गई वैल्यू हाइलाइट करें।
JSON ऑब्जेक्ट के ऐरे को CSV में बदलें, नेस्टेड कीज़ को समतल करते हुए।
JSON को साफ़ और पढ़ने योग्य YAML में बदलें।
JSON डॉक्यूमेंट को JSON Schema (draft-07 / 2019-09 / 2020-12 के मुख्य कीवर्ड) के विरुद्ध वैलिडेट करें।