JSON प्रारूप

JSON प्रारूप

JSON प्रारूप

JSON यह एक टेक्स्ट-आधारित डेटा विनिमय प्रारूप है, जिसका अर्थ है कि इसे किसी व्यक्ति के साथ-साथ प्रोग्राम के लिए भी पढ़ना आसान है। इसका नाम अंग्रेजी संक्षिप्त नाम से मेल खाता है जावास्क्रिप्ट ऑब्जेक्ट नोटेशन और के रूप में मानकीकृत है ईसीएमए-404. हालाँकि यह एक ऐसा प्रारूप है जो वाक्यविन्यास के बहुत करीब है जावास्क्रिप्ट, क्योंकि ऑब्जेक्ट डेटा को एनकोड करना या उसे प्राप्त करना प्रोसेस करना बहुत आसान है, इसका उपयोग कई अन्य प्रोग्रामिंग भाषाओं में भी किया जाता है (C, सी + +, जावा, अजगर...) एक विकल्प के रूप में, उदाहरण के लिए, एक्सएमएल के लिए, जिसका एक समान उद्देश्य है लेकिन, क्योंकि इसमें अधिक मेटा-जानकारी शामिल है, अधिक पाठ की आवश्यकता होती है और इसलिए अधिक स्थान लेता है, अधिक बैंडविड्थ का उपभोग करता है और एन्कोड और डीकोड करने के लिए अधिक संसाधनों की आवश्यकता होती है इसमें जो जानकारी है. JSON.

सामग्री की तालिका

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

    JSON प्रारूप में किसी ऑब्जेक्ट के सिंटैक्स की रूपरेखा

    संपत्ति के नामों को दोहरे उद्धरण चिह्नों का उपयोग करके उद्धरण चिह्नों में संलग्न किया जाना चाहिए (हालांकि कुछ पार्सर्स एकल उद्धरण चिह्नों का समर्थन करेंगे), और यद्यपि नामों के लिए कुछ विशेष वर्णों की अनुमति है (जैसे कि उच्चारण चिह्न), कुछ विश्लेषण इंजनों के मानदंडों से बचने के लिए इसकी अनुशंसा नहीं की जाती है विशेष रूप से dot(object.property) सिंटैक्स के साथ संपत्ति का उपयोग करते समय टकराव से बचें

    उपरोक्त उदाहरण में आप एक ऑब्जेक्ट देख सकते हैं जिसमें सरल, संख्यात्मक, बूलियन या टेक्स्ट मानों के साथ छह गुण हैं; लेकिन प्रारूप में JSON, गुण एक मूल्य के रूप में एक ऑब्जेक्ट ("विशेष ऑब्जेक्ट" शून्य सहित) या एक टेक्स्ट स्ट्रिंग (उद्धरण में एक टेक्स्ट), एक संख्या (विभिन्न प्रारूपों में) या एक बूलियन मान (सही या गलत) के अलावा एक सरणी भी प्राप्त कर सकते हैं ).

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

    En जावास्क्रिप्ट यह आवश्यक नहीं है कि किसी सारणी के सभी तत्व एक ही प्रकार के हों, आप मिश्रण कर सकते हैं, उदाहरण के लिए, टेक्स्ट स्ट्रिंग्स और संख्यात्मक मान। एक वेक्टर, एक आयामी सरणी, किसी अन्य सरणी के तत्वों में से एक भी हो सकती है, जिससे परिवर्तनीय लंबाई के बहुआयामी सरणी का निर्माण किया जा सकता है। निम्नलिखित उदाहरण एक वस्तु को तीन गुणों के साथ दिखाता है: पहला निश्चित लंबाई की एक द्वि-आयामी सरणी, दूसरा चर लंबाई, और तीसरा विभिन्न प्रकार के मानों के साथ एक सरणी द्वारा गठित।

    निम्न उदाहरण मूल ऑब्जेक्ट के गुणों के मान के रूप में अन्य ऑब्जेक्ट का उपयोग करता है। नेस्टिंग के स्तर पर कोई सीमा नहीं है, इसलिए, बदले में, जो वस्तुएं माता-पिता के संपत्ति मूल्य हैं, उनके संपत्ति मूल्य के रूप में अन्य वस्तुएं भी हो सकती हैं, इत्यादि।

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

    अधिकांश भाषाओं में मौजूद मानक वर्ण (सी के समान) निम्नलिखित हैं

    • प्रतिगमन \b कोड ASCII 8 (0x08)
    • टैबुलाटर \t कोड ASCII 9 (0x09) इसे आमतौर पर HT (क्षैतिज टेबुलेटर) के रूप में दर्शाया जाता है
    • नई पंक्ति \n कोड ASCII 10 (0x0A) इसे आमतौर पर LF (लाइन फ़ीड) के रूप में दर्शाया जाता है
    • नया पेज \f कोड ASCII 12 (0x0C) आमतौर पर एफएफ (फॉर्म फ़ीड) के रूप में दर्शाया जाता है
    • वापसी \r कोड ASCII 13 (0x0D) इसे आमतौर पर सीआर (कैरिज रिटर्न) के रूप में दर्शाया जाता है
    • कोमिलस \" कोड ASCII 34 (0x22)
    • विभाजित पट्टी \/ कोड ASCII 57 (0x2F)
    • बैकस्लैश \\ कोड ASCII 134 (0x5C)
    • यूनिकोड कोड \uXXXX

    से व्युत्पन्न C (और से संबंधित यूनिक्स और इस तरह, जैसे ग्नू / लिनक्स) पंक्ति का अंत आमतौर पर दर्शाया जाता है \n और यह वह है जिसे चुना जाना चाहिए JSON लेकिन यह याद रखना दिलचस्प है कि कुछ ऑपरेटिंग सिस्टम अन्य विकल्पों को पसंद करते हैं। विंडोज़ आमतौर पर इसका प्रतिनिधित्व करता है \r\n लाइन एंडिंग्स और मैक ओएस (ओएस से पहले)। \r

    संख्यात्मक प्रारूप के सम्बन्ध में भी सन्दर्भ है जावास्क्रिप्ट. दशमलव विभाजक अवधि है, डैश (ASCII 45 0x2D) का प्रयोग ऋणात्मक चिह्न के रूप में किया जाता है घातीय रूप में अंकन (वैज्ञानिक संकेत) उपयोग करता है E संकेतक के रूप में (जो ऊपरी या निचला मामला हो सकता है)

    जैसा कि मैंने शुरुआत में कहा था, डेटा का उपयोग करने के लिए, जो एक पाठ के रूप में प्राप्त किया गया होगा, विभिन्न प्रोग्रामिंग भाषाओं में विश्लेषण और असाइनमेंट कार्य होते हैं। निम्नलिखित उदाहरण दिखाता है कि उनका उपयोग कैसे किया जाएगा जावास्क्रिप्ट. कंसोल से इसका उपयोग करने में सक्षम होने के लिए, डेटा असाइनमेंट शामिल है JSON दुभाषिया द्वारा प्रयुक्त ईसीएमए मानक के आधार पर संभावित त्रुटियों से बचने के लिए जावास्क्रिप्ट ऑब्जेक्ट असाइनमेंट बनाया गया है JSON एक ही पंक्ति में. 6 का संस्करण 2016 (ईसीएमए-262) मल्टीलाइन स्ट्रिंग्स का समर्थन करता है, संस्करण 5 (2011 तक) में एस्केप कोड जोड़ने की आवश्यकता है \ और पिछले वाले में आपको इसे हाथ से हल करना होगा या एक पंक्ति का उपयोग करना होगा।

    नए उपयोगकर्ताओं को भ्रमित न करने की चेतावनी जावास्क्रिप्ट. कोड के अंदर जावास्क्रिप्ट ऑब्जेक्ट बनाने के लिए टेक्स्ट स्ट्रिंग का उपयोग करना आवश्यक नहीं है, पिछले उदाहरण में इसका उपयोग सर्वर से आने वाले डेटा को अनुकरण करने के लिए किया जाता है। किसी वेरिएबल को ऑब्जेक्ट असाइन करने के लिए, कुछ इस प्रकार:

    उस ऑब्जेक्ट को टेक्स्ट में बदला जा सकता है, उदाहरण के लिए, फ़ंक्शन के साथ stringify निम्नलिखित नुसार:

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

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

    टिप्पणी पोस्ट

    आप चूक गए होंगे