What Is JSON? Syntax, Data Types, and API Examples

JSON क्या है?

Scrapeless Scraping API समर्थित वेब स्रोतों से संरचित डेटा लौटाता है उन अनुप्रयोगों के लिए जिन्हें मशीन-रीड करने योग्य परिणामों की आवश्यकता होती है।

JSON एक पाठ प्रारूप है जो संरचित डेटा का प्रतिनिधित्व करने के लिए है। एक वस्तु नामित मूल्यों को समूहित करती है, जबकि एक सरणी मूल्यों को क्रम में रखती है। प्रारूप इतना छोटा है कि इसे एक पाठ संपादक में निरीक्षण किया जा सके और विभिन्न भाषाओं में सॉफ़्टवेयर को उसी मूलभूत संरचनाओं का आदान-प्रदान करने के लिए पर्याप्त सटीक है। इसका नाम जावास्क्रिप्ट ऑब्जेक्ट नोटेशन से आया है, लेकिन JSON एक डेटा प्रारूप है, जावास्क्रिप्ट प्रोग्राम नहीं।

एक JSON प्रतिक्रिया तब ही उपयोगी होती है जब पाठक जानता है कि फ़ील्ड का क्या अर्थ है। एक मूल्य, मुद्रा, और उपलब्धता के साथ एक उत्पाद रिकॉर्ड बिना लेबल वाले नंबर से अधिक जानकारीपूर्ण है। यह गाइड व्याकरण को स्पष्ट करता है, दिखाता है कि JSON HTTP विनिमय में कैसे फिट होता है, और संरचना की वैधता को विश्वसनीय डेटा की कठिन समस्या से अलग करता है।

कैसे JSON डेटा का प्रतिनिधित्व करता है

JSON में छह प्रकार के मान होते हैं: ऑब्जेक्ट, एरे, स्ट्रिंग, नंबर, बूलियन, और नल। JSON प्रारूप विनिर्देश अपना व्याकरण परिभाषित करता है। एक वस्तु को ब्रेसेस के साथ लिखा जाता है और इसमें नाम और मान जोड़े होते हैं। एक ऐरे को ब्रैकेट्स के साथ लिखा जाता है और इसमें मानों का क्रमबद्ध अनुक्रम होता है। वही ऐरे कई JSON मान प्रकारों को समाहित कर सकता है, हालाँकि एक अनुप्रयोग स्कीमा और अधिक कठोर नियम लगा सकता है।

स्ट्रिंग्स डबल उद्धरण चिह्नों का उपयोग करती हैं। एक स्ट्रिंग के भीतर, उद्धरण चिह्नों, बैकस्लेशों, और कुछ नियंत्रण वर्णों को एस्केप करने की आवश्यकता होती है। संख्या दशमलव व्याकरण का उपयोग करती हैं; JSON में अनंत या एक अव्याख्यायित जावास्क्रिप्ट मान जैसे मानों के लिए कोई अंतर्निर्मित प्रतिनिधित्व नहीं है। शब्द true, false, और null छोटे अक्षरों में होते हैं। एक पार्सर एक दस्तावेज़ को एकल ट्रेलिंग कॉमा या एक अप्रकाशित प्रॉपर्टी नाम के कारण अस्वीकार कर सकता है।

उदाहरण के लिए, एक काल्पनिक प्रतिक्रिया एक वस्तु को शामिल कर सकती है जिसका नाम item है, जिसमें एक स्ट्रिंग शीर्षक, एक अंकात्मक मूल्य, एक बूलियन inStock मान, और टैग का एक सरणी हो सकता है। बाहरी आकार यह बताता है कि कौन से फ़ील्ड एक साथ यात्रा करते हैं; मान यह कहते हैं कि क्या देखा गया। JSON उन फ़ील्डों के लिए मुद्रा, समय क्षेत्र, या व्यापार परिभाषा निर्धारित नहीं करता है। निर्माता और उपभोक्ता को अभी भी एक अनुबंध की आवश्यकता होती है जो प्रत्येक नाम को एक स्थिर अर्थ देता है।

एक JSON दस्तावेज़ क्या सुनिश्चित कर सकता है और क्या नहीं कर सकता

मान्य JSON यह साबित करता है कि पाठ एक व्याकरण का पालन करता है। यह यह साबित नहीं करता कि एक आवश्यक फ़ील्ड मौजूद है, एक मूल्य वर्तमान है, या एक URL खोलने के लिए सुरक्षित है। एक पार्सर एक ऐसे ऑब्जेक्ट को स्वीकार कर सकता है जिसके फ़ील्ड वर्तमान कार्रवाई के लिए सभी गलत हैं। पार्सिंग के बाद, डेटा को एक उपयोगकर्ता इंटरफ़ेस या डाउनस्ट्रीम कार्य में भेजने से पहले अपेक्षित आकार, मूल्य की रेंज, और पहचानकर्ताओं की जांच करें।

डुप्लिकेट ऑब्जेक्ट नाम विशेष रूप से अजीब होते हैं। प्रारूप वस्तु के भीतर नामों का वर्णन करता है जो आदर्श रूप से अद्वितीय होते हैं, फिर भी पार्सर दोहराव को अलग तरह से संभाल सकते हैं। एक कार्यान्वयन अंतिम मान को रख सकता है जबकि दूसरा एक त्रुटि रिपोर्ट कर सकता है। अगर एक सुरक्षा निर्णय किसी क्षेत्र पर निर्भर करता है, तो किसी दो विरोधाभासी प्रति को बिना किसी समस्या के सिस्टम की विभिन्न परतों के माध्यम से गुजरने मत दें।

JSON में एक स्वदेशी तिथि प्रकार, बाइनरी ब्लॉब, या स्कीमा घोषणा भी नहीं होती है। अनुप्रयोग सामान्यतः समय को स्ट्रिंग के रूप में और बाइनरी सामग्री को एक सहमति प्रतिनिधित्व के माध्यम से एनकोड करते हैं, लेकिन ये मूल प्रारूप से ऊपर लगाए गए नियम हैं। क्षेत्र के बगल में नियम को प्रलेखित करें। अन्यथा, दो क्लाइंट सफलतापूर्वक समान पाठ को पार्स कर सकते हैं और फिर भी इसे भिन्न तरीके से व्याख्या कर सकते हैं।

कैसे JSON एक API के माध्यम से यात्रा करता है

एक HTTP API अनुरोध शरीर, प्रतिक्रिया शरीर, या दोनों में JSON डाल सकता है। Content-Type फ़ील्ड प्रतिनिधित्व की पहचान करती है ताकि प्राप्तकर्ता एक उपयुक्त पार्सर चुन सके। HTTP अर्थशास्त्र विनिर्देशन संदेश मेटाडेटा को स्थानांतरित किए जा रहे शरीर से अलग करता है। एक HTTP सफलता स्थिति अनुरोध परिणाम के बारे में कुछ कहती है; प्रतिक्रिया शरीर लौटाए गए संसाधन या परिणाम का वर्णन करता है।

एक क्लाइंट को यह सुनिश्चित करने के लिए प्रतिक्रिया स्थिति और अपेक्षित मीडिया प्रकार की जांच करनी चाहिए कि हर बॉडी JSON है। प्रमाणीकरण विफलताएँ, गेटवे त्रुटियाँ, और रखरखाव पृष्ठ एक अन्य प्रारूप लौटा सकते हैं। केवल यह पुष्टि करने के बाद पर्स करें कि प्राप्त बॉडी अपेक्षित ऑपरेशन से संबंधित है। फिर सभी सेवाओं द्वारा परिणामों को डेटा नामक संपत्ति में लिपटाने के बजाय एक दस्तावेजीकृत क्षेत्र पथ का निरीक्षण करें।

The Scrapeless स्क्रैपिंग API परिचय अभिनेता-चयनित अनुरोधों और संरचित आउटपुट का विवरण देता है। यह JSON का एक ठोस उपयोग है: एक एप्लिकेशन एक प्रलेखित इनपुट ऑब्जेक्ट भेजता है और अभिनेता-विशिष्ट परिणाम पढ़ता है। विभिन्न अभिनेताओं के पास विभिन्न क्षेत्रों की हो सकती है, इसलिए एकल सामान्य पार्सर पाठ को डिकोड कर सकता है जबकि उत्पाद-विशिष्ट मानचित्रण को इसे व्याख्या करना अभी भी है।

ऑब्जेक्ट्स, ऐरेज़, और गायब मान

एक ऑब्जेक्ट नामित प्रॉपर्टीज़ के बारे में एक प्रश्न का उत्तर देता है; एक एरे अनुक्रम के बारे में एक प्रश्न का उत्तर देता है। खोज परिणामों की सूची स्वाभाविक रूप से परिणाम ऑब्जेक्ट्स के एरे के रूप में प्रस्तुत की जाती है, जिसमें प्रत्येक ऑब्जेक्ट फील्ड्स को होल्ड करता है जैसे शीर्षक और लिंक। चारों ओर का रिस्पॉन्स ऑब्जेक्ट तभी पेजिनेशन या मेटाडेटा भी ले जा सकता है। उन स्तरों को अलग करना यह समझाना आसान बनाता है कि कौन से फील्ड एक परिणाम का वर्णन करते हैं और कौन से समग्र अनुरोध का वर्णन करते हैं।

एक गायब संपत्ति उसी तरह की नहीं होती जैसी संपत्ति जिसका मान null है। गायब का मतलब हो सकता है कि उत्पादक ने किसी फील्ड को छोड़ दिया; null दस्तावेज़ में स्पष्ट रूप से दिखाई देता है। न तो मामला स्वचालित रूप से शून्य या एक खाली स्ट्रिंग के रूप में माना जाना चाहिए। तय करें कि उपभोक्ता एप्लिकेशन प्रत्येक मामले को कैसे संभालता है, और उस निर्णय का परीक्षण वास्तविक API अनुबंध के खिलाफ करें।

संख्याओं को समान देखभाल की आवश्यकता होती है। JSON एक संख्या व्याकरण प्रदान करता है, लेकिन विभिन्न भाषाएँ बहुत बड़े पूर्णांकों और दशमलव भिन्नों को संग्रहीत करने के तरीके में भिन्न होती हैं। पैसा और पहचानकर्ता को कठिनाई से एक प्रलेखित स्ट्रिंग या दशमलव प्रतिनिधित्व की आवश्यकता हो सकती है बजाय एक तैरती-बिंदु धारणा के। The जावास्क्रिप्ट JSON इंटरफ़ेस प्रसिद्ध पार्स और सीरियलाइज़ ऑपरेशंस को दिखाता है, जबकि डेटा मॉडल अभी भी एप्लीकेशन-स्तरीय निर्णयों की आवश्यकता है।

व्यवहार में JSON की मान्यता और डिबगिंग

स्क्रीनशॉट के बजाय कच्चे जवाब से शुरू करें जो एक डैशबोर्ड ने प्रदर्शित किया। इसकी स्थिति, मीडिया प्रकार, और पूर्ण शरीर की पुष्टि करें। यदि पार्सिंग विफल होती है, तो पहले अनुक्रमिक त्रुटि का स्थान पता लगाएं: एक अनविकसित उद्धरण, एक गायब बंद ब्रैकेट, या एक ट्रेलिंग कॉमा अक्सर पर्याप्त होता है। यदि पार्सिंग सफल होती है लेकिन एप्लिकेशन अभी भी विफल रहता है, तो उस क्षेत्र के पथ और प्रकार का निरीक्षण करें जिसकी एप्लिकेशन अपेक्षा करती है।

अर्थ के खिलाफ चेक लिखें न कि केवल उपस्थिति के खिलाफ। एक परिणाम सूची मौजूद हो सकती है और खाली भी; यह एक सही कोई परिणाम नहीं होने वाले परिणाम का परिणाम हो सकता है या ऊपरी स्तर तक पहुंच समस्या का सबूत हो सकता है। एक URL एक स्ट्रिंग हो सकता है और फिर भी एक असंबंधित पृष्ठ पर इंगित कर सकता है। ज्ञात-गुणवत्ता और किनारे के मामले के प्रतिक्रियाओं का एक छोटा सेट अनुबंध उदाहरणों के रूप में रखें, जो स्पष्ट रूप से उदाहरण के रूप में लेबल किए गए हैं न कि लाइव कैप्चर के रूप में।

जब सार्वजनिक वेब डेटा का उपभोग किया जाता है, तो एक लिंक को स्रोत रिकॉर्ड और अवलोकन संदर्भ को बनाए रखें जब वर्कफ़्लो को ऑडिटेबिलिटी की आवश्यकता हो। Scrapeless Scraping API एक तरीके से संगठित परिणाम प्राप्त करने के लिए समर्थित स्रोतों से है। जो एप्लिकेशन उन परिणामों को संग्रहित करता है, उसे अभी भी अभिनेता-विशिष्ट स्कीमा को मान्य करना चाहिए और उन क्षेत्रों को संभालने का निर्णय लेना चाहिए जो लक्ष्यों के बीच भिन्न होते हैं।

जब JSON सही प्रतिनिधित्व है

JSON छोटे से मध्यम आकार के संगठित रिकॉर्ड को वेब सेवाओं और ग्राहकों के बीच आदान-प्रदान करने के लिए एक मजबूत फिट है। यह बिना किसी विशेष दृश्य के पढ़ने योग्य है, और अधिकांश भाषाओं में परिपक्व पार्सर होते हैं। यह कॉन्फ़िगरेशन, एपीआई अनुरोधों, और निकाले गए रिकॉर्ड के लिए सुविधाजनक बनाता है जिन्हें कई प्रणालियों के माध्यम से गुजरना चाहिए। पठनीयता का मतलब यह नहीं है कि कोई मानव उत्पादन के भुगतान को हाथ से संपादित करे।

तालिका निर्यात के लिए, CSV स्प्रेडशीट के लिए आसान हो सकता है, हालांकि यह स्वाभाविक रूप से नस्टेड संरचनाओं का प्रतिनिधित्व नहीं करता है। HTML पृष्ठ संरचना और प्रस्तुति को बनाए रखता है लेकिन आमतौर पर एक एप्लिकेशन को व्यापार क्षेत्रों को विश्वसनीयता से क्वेरी करने से पहले निकासी की आवश्यकता होती है। एक बाइनरी प्रारूप आकार को कम कर सकता है या उच्च मात्रा वाले आंतरिक ट्रैफ़िक के लिए एक मजबूत स्कीमा जोड़ सकता है। डेटा के आकार और जो प्रणालियाँ इसका उपभोग करती हैं, के अनुसार चुनें।

एक उपयोगी डिज़ाइन प्रश्न यह है कि क्या उपभोक्ता को मूल पृष्ठ या चयनित रिकॉर्ड की आवश्यकता है। यदि उपभोक्ता को समर्थित अभिनेता से उत्पाद शीर्षक और उपलब्धता की आवश्यकता है, तो संगठित JSON पार्सिंग काम को कम करता है। यदि उपभोक्ता को उस सटीक मार्कअप का निरीक्षण करने की आवश्यकता है जिससे एक परिणाम उत्पन्न हुआ, तो उपयुक्त पृष्ठ प्रतिनिधित्व को बनाए रखें या अनुरोध करें। संबंधित Scraper API अभिनेता मार्गदर्शिका यह दर्शाती है कि आउटपुट लिफाफे और क्षेत्रों को अभिनेता द्वारा अभिनेता पढ़ा जाना चाहिए।

निष्कर्ष

JSON संगठित मानों के आदान-प्रदान के लिए एक सटीक पाठ व्याकरण प्रदान करता है। यह उन मानों को विश्वसनीय बनाने वाले व्यावसायिक नियमों को प्रदान नहीं करता है। अपेक्षित आकार को परिभाषित करें, वास्तविक एपीआई प्रतिक्रियाओं की जांच करें, और उन क्षेत्रों की मान्यता करें जिनका आपकी एप्लिकेशन उपयोग करती है, इससे पहले कि पार्स किया गया दस्तावेज़ एक विश्वसनीय रिकॉर्ड के रूप में माना जाए।

संगठित वेब डेटा को उपयोगी रिकॉर्ड में बदलें

दस्तावेज़ Scraping API अभिनेता की खोज करें और उनके लौटाए गए क्षेत्रों को अपने एप्लिकेशन स्कीमा से मानचित्रित करें।

आज ही साइन अप करें और पाएं $5 का मुफ्त क्रेडिट — कोई क्रेडिट कार्ड आवश्यक नहीं.

अपना $5 क्रेडिट प्राप्त करें →

पूछे जाने वाले प्रश्न

क्या JSON, JavaScript के समान है?

JSON एक भाषा-स्वतंत्र डेटा प्रारूप है जो JavaScript वस्तु संकेतन से प्रेरित है। JavaScript JSON को पार्स और अनुक्रमित कर सकता है, लेकिन JSON में JavaScript अभिव्यक्तियाँ, कार्य, टिप्पणियाँ और अनिर्धारित मान शामिल नहीं हैं। Incoming JSON को पार्स करने और मान्य करने के लिए डेटा के रूप में मानें, न कि कार्यान्वयन के लिए कोड के रूप में।

क्या एक JSON फ़ाइल में एक से अधिक वस्तुएँ हो सकती हैं?

एकल JSON पाठ में कई वस्तुओं वाला एक सूची हो सकती है, या एक वस्तु हो सकती है जिसमें नस्टेड वस्तुएँ शामिल होती हैं। इसमें कई शीर्ष-स्तरीय JSON मान नहीं हो सकते हैं जो केवल एक-दूसरे के बाद रखे गए हों और फिर भी एक मानक JSON पाठ हो। इस उद्देश्य के लिए कभी-कभी एक पृथक रेखा-उन्मुख प्रारूप का उपयोग किया जाता है।

क्या सही JSON का मतलब है कि डेटा सही है?

सही JSON केवल यह मतलब है कि पाठ JSON व्याकरण का पालन करता है। सामग्री अधूरी, पुरानी, भ्रामक, या उपभोक्ता स्कीमा के साथ असंगत हो सकती है। पार्स करने के बाद आवश्यक क्षेत्रों, प्रकारों, स्रोत संदर्भ, और व्यावसायिक नियमों की जांच करें।

क्यों एक एपीआई कभी-कभी HTML को JSON के बजाय लौटाता है?

एक एपीआई क्लाइंट को HTML प्राप्त हो सकता है जब यह एक वेब पृष्ठ, एक पहुंच चुनौती, या एक त्रुटि सतह पर पहुँचता है न कि अपेक्षित एपीआई प्रतिक्रिया पर। पार्सिंग से पहले HTTP स्थिति, अंतिम URL, और मीडिया प्रकार की जांच करें। केवल एक सफल नेटवर्क कनेक्शन यह स्थापित नहीं करता है कि इच्छित JSON परिणाम वितरित किया गया था।

संदर्भ