JSON, JavaScript Object Notation, संरचित डेटा को दर्शाने के लिए एक टेक्स्ट फ़ॉर्मेट है: ऑब्जेक्ट, लिस्ट, स्ट्रिंग, नंबर, बूलियन और एक null मान, जो इतने छोटे सिंटैक्स में लिखा जाता है कि एक दोपहर में पढ़ा जा सके और इतना सख्त है कि हर लैंग्वेज इसे एक ही तरह से पार्स करे। नाम के बावजूद यह JavaScript से बंधा नहीं है। हर मुख्यलैंग्वेज अपने स्टैंडर्ड लाइब्रेरी में JSON पार्सर शामिल करता है या एक लाइन में इंस्टॉल होता है, जो इसके जीतने की असली वजह है: इसलिए नहीं कि यह सुंदर है, बल्कि इसलिए कि यह उबाऊ और पोर्टेबल है।
यह कैसा दिखता है
{
"name": "Ada Lovelace",
"age": 36,
"isEmployed": true,
"skills": ["mathematics", "writing"],
"address": { "city": "London", "country": "UK" },
"nickname": null
}
एक ऑब्जेक्ट { } में की-वैल्यू पेयर होते हैं, एक एरे [ ] में एक
क्रमबद्ध सूची होती है, और बाकी सब इन दो कंटेनरों के अंदर नेस्ट होता है।
यही JSON की पूरी शेप है: दो कंटेनर टाइप और उनके अंदर एक मुट्ठी भर वैल्यू
टाइप।
छह वैल्यू टाइप, न ज्यादा न कम
JSON वैल्यू एक स्ट्रिंग, एक नंबर, एक बूलियन (true या false), null,
एक एरे, या एक ऑब्जेक्ट होता है। स्पेसिफिकेशन में इसके अलावा कुछ नहीं
है। कोई डेट टाइप नहीं है, कोई undefined नहीं है, कोई कमेंट सिंटैक्स
नहीं है, और कोई फंक्शन दर्शाने का तरीका नहीं है। एक डेट दोनों पक्षों द्वारा
तय किए गए फ़ॉर्मेट में एक स्ट्रिंग बन जाती है (आमतौर पर ISO 8601), और
JavaScript में undefined होने वाला मान ऑब्जेक्ट से छोड़ दिया जाता है
बजाय लिखने के। JSON डेटा टाइप्स विस्तार से इन
छहों को और अधिक विस्तार से कवर करता है, जिसमें वे एज केस भी शामिल हैं
जो एक सीधे पार्सर को भ्रमित करते हैं।
यह अधिकांश APIs के लिए XML को क्यों बदल दिया
XML हर वैल्यू को ओपनिंग और क्लोजिंग टैग्स में लपेटता है, उसके ऊपर एट्रीब्यूट्स भी सपोर्ट करता है, और वैध बताने के लिए अलग से स्कीमा लैंग्वेज चाहिए। JSON के कंटेनर दो-दो कैरेक्टर के हैं, वैल्यू बिना किसी टैग के टाइप्ड हैं, और डॉक्यूमेंट की शेप उस डेटा स्ट्रक्चर की शेप को रिफ्लेक्ट करती है जो एक प्रोग्राम वास्तव में इस्तेमाल करता है; एक JSON डॉक्यूमेंट को लैंग्वेज के नेटिव ऑब्जेक्ट लिटरल में पार्स करना लगभग सीधी कॉपी है, जबकि एक XML डॉक्यूमेंट को आमतौर पर उसके ऊपर अपना ऑब्जेक्ट मॉडल ट्रांसलेट करना पड़ता है। यह पेलोड साइज और पार्सिंग कॉस्ट में एक वास्तविक, मापने योग्य अंतर है, जिसकी वजह से REST APIs ने JSON को अपनाया जब यह मौजूद हुआ। JSON vs XML देखें एक और करीबी, विशिष्ट तुलना के लिए।
आप इसे वास्तव में कहां देखेंगे
- REST API रिस्पॉन्स और रिक्वेस्ट।
Content-Type: application/jsonबॉडीज के लिए प्रभावी फ़ॉर्मेट, दोनों दिशाओं में। - कॉन्फ़िग फ़ाइलें।
package.json,tsconfig.json, और अधिकांश आधुनिक टूल कॉन्फ़िग, हालांकि YAML भी यहां आम है; देखें JSON vs YAML कब कौन सा बेहतर है। - NoSQL और डॉक्यूमेंट डेटाबेस। MongoDB डॉक्यूमेंट्स BSON के रूप में स्टोर होते हैं, JSON का एक बाइनरी सुपरसेट, और अधिकांश डॉक्यूमेंट डेटाबेस JSON को सीधे स्वीकार करते हैं और लौटाते हैं।
- लॉग लाइन्स और डेटा पाइपलाइन, प्रति लाइन एक JSON ऑब्जेक्ट, एक फ़ॉर्मेट जिसे आमतौर पर NDJSON कहा जाता है। सामान्य JSON उपयोग के मामले इसे और अन्य को वास्तविक शेप्स के साथ समझाता है।
- ब्राउज़र स्टोरेज।
localStorageकेवल स्ट्रिंग्स स्टोर करता है, इसलिए कोई भी स्ट्रक्चर्ड चीज़ अंदर जाते समयJSON.stringifyऔर बाहर आते समयJSON.parseहोती है।
इसके साथ काम करना
दस्तावेज़ को JSON फ़ॉर्मैटर में पेस्ट करें प्रिंट करने के लिए, या JSON वैलिडेटर में स्पेसिफिकेशन के खिलाफ जांचने के लिए, टूटे हुए कैरेक्टर पर लाइन और कॉलम के साथ। न तो जो आप पेस्ट करते हैं वह अपलोड होता है; दोनों पूरी तरह से आपके ब्राउज़र में चलते हैं। एक बार बेसिक्स समझ में आ जाए, तो JSON चीट शीट ऊपर के सिंटैक्स नियमों के लिए एक पेज की रेफरेंस है, टैब में खुली रखने या ऑफलाइन रेफरेंस के लिए डाउनलोड करने लायक है।