- docx (माइक्रोसॉफ्ट वर्ड प्रारूप);
- पीडीएफ (एडोब प्रारूप);
- मोबी (आमतौर पर अमेज़ॅन किंडल उपकरणों पर उपयोग किया जाता है);
- और भी बहुत कुछ (ePub, djvu, fb2, आदि)।
JSON
जावास्क्रिप्ट ऑब्जेक्ट नोटेशन। आप इस प्रारूप के बारे में पहले से ही कुछ जानते हैं! हमने इस पाठ में इसके बारे में बात की थी , और हमने यहीं JSON में क्रमांकन को कवर किया । इसे एक कारण के लिए इसका नाम मिला। जेएसओएन में परिवर्तित जावा ऑब्जेक्ट वास्तव में जावास्क्रिप्ट में ऑब्जेक्ट्स की तरह दिखते हैं। हमारी वस्तु को समझने के लिए आपको जावास्क्रिप्ट जानने की आवश्यकता नहीं है:
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
}
हम केवल एक ही वस्तु भेजने तक सीमित नहीं हैं। JSON प्रारूप वस्तुओं की एक सरणी का भी प्रतिनिधित्व कर सकता है:
[
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
},
{
"title": "Demons",
"author": "Fyodor Dostoyevsky",
"year": 1872
},
{
"title": "The Seagull",
"author": "Anton Chekhov",
"year": 1896
}
]
क्योंकि JSON JavaScript ऑब्जेक्ट का प्रतिनिधित्व करता है, यह निम्न JavaScript डेटा स्वरूपों का समर्थन करता है:
- तार;
- संख्या;
- वस्तुएं;
- सरणियाँ;
- बूलियन्स (सच्चा और झूठा);
- व्यर्थ।
-
मानव-पठनीय प्रारूप। यदि आपका अंतिम उपयोगकर्ता मानव है तो यह एक स्पष्ट लाभ है। उदाहरण के लिए, मान लें कि आपके सर्वर में फ़्लाइट शेड्यूल वाला एक डेटाबेस है। एक मानव ग्राहक, घर पर अपने कंप्यूटर पर बैठा हुआ, वेब एप्लिकेशन का उपयोग करके इस डेटाबेस से डेटा का अनुरोध करता है। क्योंकि आपको डेटा को उस प्रारूप में प्रदान करने की आवश्यकता है जिसे वह समझ सके, JSON एक अच्छा समाधान है।
-
सादगी। यह बहुत आसान है :) ऊपर, हमने दो JSON फ़ाइलों का एक उदाहरण दिया। और यहां तक कि अगर आपने जावास्क्रिप्ट के बारे में नहीं सुना है (जावास्क्रिप्ट वस्तुओं को छोड़ दें), तो आप वहां वर्णित वस्तुओं के प्रकार को आसानी से समझ सकते हैं।
संपूर्ण JSON दस्तावेज़ीकरण में कुछ चित्रों के साथ एक वेबपृष्ठ होता है। -
व्यापक उपयोग। जावास्क्रिप्ट प्रमुख फ्रंट-एंड भाषा है, और इसकी अपनी आवश्यकताएं हैं। JSON का उपयोग करना जरूरी है। इसलिए, बड़ी संख्या में वेब सेवाएँ डेटा विनिमय प्रारूप के रूप में JSON का उपयोग करती हैं। प्रत्येक आधुनिक IDE JSON प्रारूप (IntelliJ IDEA सहित) का समर्थन करता है। जेएसओएन के साथ काम करने में सक्षम बनाने के लिए सभी प्रकार की प्रोग्रामिंग भाषाओं के लिए पुस्तकालयों का एक समूह लिखा गया है।
वाईएएमएल
प्रारंभ में, YAML "येट अदर मार्कअप लैंग्वेज" के लिए खड़ा था। जब यह शुरू हुआ, तो इसे XML के प्रतियोगी के रूप में स्थापित किया गया था। अब, समय बीतने के साथ, YAML का अर्थ "YAML Ain't Markup Language" हो गया है। हकीकत में यह क्या है? आइए कल्पना करें कि कंप्यूटर गेम में पात्रों का प्रतिनिधित्व करने के लिए हमें 3 वर्ग बनाने की आवश्यकता है: योद्धा, दाना और चोर। उनके पास निम्नलिखित विशेषताएं होंगी: ताकत, चपलता, सहनशक्ति, हथियारों का एक सेट। हमारी कक्षाओं का वर्णन करने वाली YAML फ़ाइल इस तरह दिखेगी:
classes:
class-1:
title: Warrior
power: 8
agility: 4
stamina: 7
weapons:
- sword
- spear
class-2:
title: Mage
power: 5
agility: 7
stamina: 5
weapons:
- magic staff
class-3:
title: Thief
power: 6
agility: 6
stamina: 5
weapons:
- dagger
- poison
एक YAML फ़ाइल में एक वृक्ष संरचना होती है: कुछ तत्व दूसरों में नेस्टेड होते हैं। हम एक निश्चित संख्या में रिक्त स्थान का उपयोग करके नेस्टिंग को नियंत्रित कर सकते हैं, जिसका उपयोग हम प्रत्येक स्तर को दर्शाने के लिए करते हैं। YAML प्रारूप के क्या लाभ हैं?
-
पठनीय मानव। फिर से, बिना किसी विवरण के एक YAML फ़ाइल को देखकर भी, आप उन वस्तुओं को आसानी से समझ सकते हैं जिनका वह वर्णन करता है। YAML इतना पठनीय है कि वेबसाइट yaml.org एक सामान्य YAML फ़ाइल है :)
-
सघनता। फ़ाइल संरचना रिक्त स्थान का उपयोग करके बनाई गई है: कोष्ठक या उद्धरण चिह्नों का उपयोग करने की कोई आवश्यकता नहीं है।
-
प्रोग्रामिंग भाषाओं के लिए देशी डेटा संरचनाओं के लिए समर्थन। JSON और कई अन्य स्वरूपों पर YAML का बड़ा लाभ यह है कि यह विभिन्न डेटा संरचनाओं का समर्थन करता है। वे सम्मिलित करते हैं:
-
!! मैप
कुंजी-मूल्य जोड़े का एक अनियंत्रित सेट जिसमें डुप्लीकेट नहीं हो सकते हैं; -
!!omap
कुंजी-मूल्य जोड़े का एक क्रमित क्रम जिसमें डुप्लिकेट नहीं हो सकते; -
!! जोड़े:
कुंजी-मूल्य जोड़े का एक क्रमबद्ध क्रम जिसमें डुप्लिकेट हो सकते हैं; - !!सेट
मानों का एक अनियंत्रित अनुक्रम जो एक दूसरे के बराबर नहीं हैं; - !!seq
मनमाना मूल्यों का एक क्रम;
आप इनमें से कुछ संरचनाओं को जावा से पहचान लेंगे! :) इसका मतलब है कि प्रोग्रामिंग भाषाओं से विभिन्न डेटा संरचनाओं को YAML में क्रमबद्ध किया जा सकता है।
-
-
एंकर और उपनाम का उपयोग करने की क्षमता
ये मार्कर आपको एक YAML फ़ाइल में कुछ तत्व की पहचान करने की अनुमति देते हैं, और यदि यह बार-बार होता है तो इसे शेष फ़ाइल में संदर्भित करें। प्रतीक & का उपयोग करके एक एंकर बनाया जाता है , और * का उपयोग करके एक उपनाम बनाया जाता है ।
मान लीजिए हमारे पास लियो टॉल्स्टॉय की पुस्तकों का वर्णन करने वाली एक फ़ाइल है। प्रत्येक पुस्तक के लिए लेखक का नाम लिखने से बचने के लिए, हम बस लियो एंकर बनाते हैं और जरूरत पड़ने पर एक उपनाम का उपयोग करके इसका उल्लेख करते हैं:
books: book-1: title: War and Peace author: &leo Leo Tolstoy year: 1869 book-2: title: Anna Karenina author: *leo year: 1873 book-3: title: Family Happiness author: *leo year: 1859
जब इस फ़ाइल को पार्स किया जाता है, तो मान "लियो टॉल्स्टॉय" को उन सही जगहों पर प्रतिस्थापित किया जाता है जहाँ हमारे उपनाम होते हैं।
- YAML डेटा को अन्य स्वरूपों में एम्बेड कर सकता है। उदाहरण के लिए, जेएसओएन:
books: [ { "title": "War and Peace", "author": "Leo Tolstoy", "year": 1869 }, { "title": "Anna Karenina", "author": "Leo Tolstoy", "year": 1873 }, { "title": "Family Happiness", "author": "Leo Tolstoy", "year": 1859 } ]
अन्य क्रमांकन प्रारूप
एक्सएमएल
यह प्रारूप एक टैग ट्री पर आधारित है।
<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
प्रत्येक तत्व में एक उद्घाटन और समापन टैग (<> और </>) होता है। प्रत्येक तत्व में नेस्टेड तत्व हो सकते हैं। XML एक सामान्य प्रारूप है जो JSON और YAML जितना ही अच्छा है (यदि हम वास्तविक परियोजनाओं के बारे में बात कर रहे हैं)। हमारे पास XML के बारे में एक अलग पाठ है ।
बीएसओएन (बाइनरी जेएसओएन)
जैसा कि इसके नाम का तात्पर्य है, बीएसओएन जेएसओएन के समान ही है, लेकिन यह मानव-पठनीय नहीं है और बाइनरी डेटा का उपयोग करता है। नतीजतन, छवियों और अन्य अनुलग्नकों को संग्रहित और स्थानांतरित करने के लिए यह बहुत अच्छा है। इसके अलावा, BSON कुछ ऐसे डेटा प्रकारों का समर्थन करता है जो JSON में उपलब्ध नहीं हैं। उदाहरण के लिए, एक बीएसओएन फ़ाइल में दिनांक (मिलीसेकंड प्रारूप में) या जावास्क्रिप्ट कोड का एक टुकड़ा भी शामिल हो सकता है। लोकप्रिय MongoDB NoSQL डेटाबेस BSON प्रारूप में जानकारी संग्रहीत करता है।स्थिति-आधारित प्रोटोकॉल
कुछ स्थितियों में, हमें भेजे गए डेटा की मात्रा को बहुत कम करने की आवश्यकता होती है (उदाहरण के लिए, यदि हमारे पास बहुत अधिक डेटा है और लोड को कम करने की आवश्यकता है)। इस स्थिति में, हम स्थिति-आधारित प्रोटोकॉल का उपयोग कर सकते हैं, अर्थात पैरामीटर मान को स्वयं पैरामीटर के नाम के बिना भेजें।
"Leo Tolstoy" | "Anna Karenina" | 1873
इस प्रारूप में डेटा पूर्ण JSON फ़ाइल की तुलना में कई गुना कम स्थान लेता है। बेशक, अन्य क्रमांकन प्रारूप हैं, लेकिन आपको अभी उन सभी को जानने की आवश्यकता नहीं है :) यह अच्छा है यदि आप अनुप्रयोगों को विकसित करते समय वर्तमान उद्योग मानक प्रारूपों से परिचित हैं, और उनके फायदे याद रखें और वे एक से कैसे भिन्न हैं एक और। और इसके साथ, हमारा पाठ समाप्त हो जाता है :) आज कुछ कार्यों को हल करना न भूलें! अगली बार तक! :)
GO TO FULL VERSION