टून फॉर्मेट चीट शीट
यदि आपने कभी महसूस किया है कि JSON बहुत अधिक क्रियात्मक है (वे सभी ब्रेसिज़!) लेकिन YAML थोड़ा अधिक "जादुई" और अप्रत्याशित है, तो आप शायद TOON के प्यार में पड़ सकते हैं। यह प्रारूप मानव पठनीयता और मशीन पार्सिंग गति के बीच एक अद्वितीय संतुलन बनाता है। इसे सघन, स्पष्ट और पार्स करने में अविश्वसनीय रूप से तेज़ बनाया गया है।
चाहे आप डेटा माइग्रेट कर रहे हों या बस कॉन्फ़िगरेशन फ़ाइल को डीबग करने का प्रयास कर रहे हों, यह चीट शीट आवश्यक सिंटैक्स को कवर करती है जिसे आपको जानना आवश्यक है।
दर्शन: कम शोर, अधिक डेटा
पहली बात जो आप देखेंगे वह यह है कि TOON काफी हद तक YAML जैसा दिखता है, लेकिन यह JSON की तरह ही व्यवहार करता है। यह इंडेंटेशन और न्यूलाइन के पक्ष में खुलने और बंद होने वाले ब्रेसिज़ को हटा देता है, जिससे आपका डेटा तुरंत साफ़ दिखता है।
वस्तुएं और घोंसले
JSON में, आप हर चीज़ को घुंघराले ब्रेसिज़ में लपेटने के आदी हैं। TOON में, संरचना इंडेंटेशन द्वारा निहित है।
जेएसओएन:
{
"प्रोजेक्ट": {
"मेटाडेटा": {
"नाम": "अल्फा-सेंटौरी",
"स्थिति": "सक्रिय"
},
"मील के पत्थर": [
{
"चरण": "डिज़ाइन",
"प्राथमिकता": 1
},
{
"चरण": "परीक्षण",
"प्राथमिकता": 2
}
]
}
}
टून:
परियोजना:
मेटाडेटा:
नाम: अल्फ़ा-सेंटौरी
स्थिति: सक्रिय
मील के पत्थर[2]{चरण,प्राथमिकता}:
डिज़ाइन,1
परीक्षण,2
ध्यान दें कि कुंजियों को उद्धरण की आवश्यकता नहीं है जब तक कि उनमें विशेष वर्ण न हों, और पदानुक्रम स्पष्ट रूप से स्पष्ट हो।
सारणियों की शक्ति
यह वह जगह है जहां TOON वास्तव में अन्य प्रारूपों से भिन्न होता है। TOON के लिए आपको कुंजी में ही सरणी की लंबाई घोषित करनी होगी। यह पहली बार में अजीब लग सकता है, लेकिन यह पार्सर को मेमोरी को पूर्व-आवंटित करने की अनुमति देता है, जिससे यह बहुत तेज़ हो जाता है।
आदिम सारणियाँ
स्ट्रिंग्स या संख्याओं की सरल सूचियों के लिए, TOON एक कॉम्पैक्ट, अल्पविराम से अलग किए गए सिंटैक्स का उपयोग करता है।
वाक्यविन्यास:
कुंजी[लंबाई]:आइटम1,आइटम2,आइटम3
यदि आपके पास एक रूट ऐरे है (पूरी फ़ाइल सिर्फ एक सूची है), तो यह इस तरह दिखती है:
सारणीबद्ध सारणी (द किलर फीचर)
यह वह सुविधा है जो आमतौर पर डेवलपर्स का दिल जीत लेती है। यदि आपके पास ऑब्जेक्ट्स की एक सरणी है जो सभी समान कुंजियाँ साझा करती हैं (जैसे डेटाबेस में पंक्तियाँ), तो TOON आपको हेडर में once स्कीमा को परिभाषित करने देता है और फिर केवल मानों को सूचीबद्ध करने देता है। यह JSON में पाई जाने वाली भारी मात्रा में अतिरेक को हटा देता है।
वाक्यविन्यास:
कुंजी[पंक्तियाँ]{col1,col2}:
जेएसओएन:
{
"इन्वेंट्री": [
{
"स्कू": "केबी-99",
"मात्रा": 50,
"गलियारा": 4,
"पुनः व्यवस्थित करें": गलत
},
{
"स्कू": "एमएस-12",
"मात्रा": 12,
"गलियारा": 7,
"पुनः व्यवस्थित करें": सत्य
},
{
"स्कू": "एमएन-44",
"मात्रा": 8,
"गलियारा": 2,
"पुनः व्यवस्थित करें": सत्य
}
]
}
टून:
इन्वेंटरी[3]{sku,qty,aisle,reorder}:
KB-99,50,4,झूठा
एमएस-12,12,7, सत्य
एमएन-44,8,2, सत्य
यह "सीएसवी-इनसाइड-वाईएएमएल" दृष्टिकोण बड़े डेटासेट को अविश्वसनीय रूप से पठनीय और कॉम्पैक्ट बनाता है।
मिश्रित और नेस्टेड सारणियाँ
कभी-कभी डेटा एक समान नहीं होता है. यदि आपके एरे में विभिन्न प्रकार के डेटा (ऑब्जेक्ट्स के साथ मिश्रित संख्याएं) हैं, या यदि इसमें जटिल नेस्टेड ऑब्जेक्ट्स हैं, तो TOON हाइफ़न का उपयोग करके बुलेट-पॉइंट स्टाइल सिंटैक्स पर वापस आ जाता है।
आप सारणियों के अंदर भी सारणियाँ रख सकते हैं। ध्यान दें कि आंतरिक सरणी भी अपनी लंबाई कैसे घोषित करती है:
उद्धरण: इसका उपयोग कब करना है
TOON के बारे में सबसे अच्छी चीजों में से एक यह है कि आपको शायद ही कभी उद्धरण की आवश्यकता होती है। आप "" में लपेटे बिना हैलो 世界 👋 लिख सकते हैं। हालाँकि, क्योंकि TOON प्रकारों (संख्याओं, बूलियन्स) का अनुमान लगाने की कोशिश करता है, इसलिए आपको उद्धरण चिह्नों का उपयोग कब करना चाहिए, इसके लिए विशिष्ट नियम हैं।
"अवश्य उद्धृत करें" सूची
आपको अपनी स्ट्रिंग को डबल कोट्स "" में लपेटना होगा यदि:
- यह एक संख्या या बूलियन जैसा दिखता है: यदि आप स्ट्रिंग
"123"या"सही"चाहते हैं, तो इसे उद्धृत करें। अन्यथा, वे संख्या123और बूलियनसत्यबन जाते हैं।
- इसमें सीमांकक शामिल हैं: यदि आपकी स्ट्रिंग में अल्पविराम
,(या जो भी आपका सक्रिय सीमांकक है) है, तो इसे उद्धृत करें।
- इसमें रिक्त स्थान के किनारे हैं: अग्रणी या अनुगामी स्थानों के लिए उद्धरण की आवश्यकता होती है।
- इसमें विशेष वर्ण शामिल हैं:
:, ````,\,[,],{,}जैसे वर्ण।
- यह खाली है: एक खाली स्ट्रिंग को
""के रूप में दर्शाया गया है।
उदाहरण:
भागने के क्रम
इसे सरल रखें। TOON स्ट्रिंग्स के अंदर केवल पांच एस्केप अनुक्रमों को पहचानता है। और कुछ भी अमान्य है.
\\(बैकस्लैश)
\"(दोहरा उद्धरण)
\n(न्यूलाइन)
\r(गाड़ी वापसी)
\t(टैब)
उन्नत हेडर और डिलीमीटर
यदि आपका डेटा अल्पविरामों से भरा है तो क्या होगा? आप हर एक फ़ील्ड को उद्धृत नहीं करना चाहते. TOON आपको सरणी शीर्षलेख में सीमांकक को बदलने की अनुमति देता है।
आप टैब या पाइप (|) को ब्रैकेट या ब्रेसिज़ के अंदर रखकर उपयोग कर सकते हैं।
पाइप डिलीमीटर उदाहरण:
हेडर में | जोड़कर, पार्सर आपके सिंटैक्स को साफ रखते हुए, अल्पविराम के बजाय पाइप को देखना जानता है।
चाबी मोड़ना
यदि आपके पास डीप नेस्टिंग है लेकिन डेटा का केवल एक ही पथ है, तो आपको पांच बार इंडेंट करने की आवश्यकता नहीं है। आप अपनी संरचना को समतल करने के लिए डॉट नोटेशन (की फोल्डिंग) का उपयोग कर सकते हैं।
मानक नेस्टिंग:
उपयोगकर्ता:
प्रोफ़ाइल:
सेटिंग्स:
सूचनाएं:
ईमेल: सत्य
एसएमएस: गलत
फोल्डेड (क्लीनर):
उपयोगकर्ता.प्रोफ़ाइल.सेटिंग्स.सूचनाएँ:
ईमेल: सत्य
एसएमएस: गलत
त्वरित प्रकार का संदर्भ
TOON सीधे JSON प्रकारों पर मैप करता है, लेकिन यह वैध आउटपुट सुनिश्चित करने के लिए जावास्क्रिप्ट-विशिष्ट किनारे के मामलों को शानदार ढंग से संभालता है।
- संख्याएँ: विहित दशमलव के रूप में संग्रहीत।
1.01बन जाता है।
- अनन्तता / NaN: ये
शून्यहो जाते हैं (क्योंकि JSON उनका समर्थन नहीं करता है)।
- तिथियां: उद्धृत आईएसओ स्ट्रिंग में परिवर्तित।
- अपरिभाषित/कार्य:
शून्यमें परिवर्तित।
- खाली वस्तुएं: कुछ भी नहीं (खाली आउटपुट) के रूप में दर्शाया गया है।
- खाली सारणियाँ:
कुंजी[0]:के रूप में प्रदर्शित।
TOON एक ऐसा प्रारूप है जो सटीकता को पुरस्कृत करता है। आपके सरणी आइटमों को गिनने की आदत डालने में कुछ समय लग सकता है, लेकिन पठनीयता और फ़ाइल आकार में लाभ प्रयास के लायक है। हैप्पी कोडिंग!