JSON ↔ YAML परिवर्तक
JSON को YAML में और YAML को वापस JSON में सीधे अपने ब्राउज़र में बदलें। साफ़ और सही ढंग से इंडेंट किया गया आउटपुट पाने के लिए कोई भी फ़ॉर्मैट पेस्ट करें — कॉन्फ़िग फ़ाइलों, CI पाइपलाइनों और Kubernetes मैनिफ़ेस्ट के लिए आदर्श।
इंडेंट
बदला गया नतीजा यहाँ देखने के लिए ऊपर डेटा दर्ज करें।
JSON से YAML परिवर्तक का उपयोग कैसे करें
- 1
दिशा चुनें
JSON से YAML या YAML से JSON चुनने के लिए टॉगल का उपयोग करें। स्वैप बटन आपके नतीजे को इनपुट में ले जाता है, ताकि आप उसे वापस दूसरी दिशा में बदल सकें।
- 2
अपना डेटा पेस्ट करें
इनपुट बॉक्स में JSON या YAML पेस्ट करें। जैसे-जैसे आप टाइप करते हैं, रूपांतरण अपने आप चलता है और संरचना, नेस्टिंग व डेटा प्रकार सुरक्षित रहते हैं।
- 3
इंडेंट चुनें
अपने प्रोजेक्ट की शैली से मेल खाने के लिए 2-स्पेस या 4-स्पेस इंडेंट चुनें। आउटपुट दोनों फ़ॉर्मैट के लिए साफ़ और सही ढंग से इंडेंट किया हुआ रहता है।
- 4
नतीजा कॉपी करें
बदले गए आउटपुट की समीक्षा करें और उसे अपने क्लिपबोर्ड पर कॉपी करें, जो किसी कॉन्फ़िग फ़ाइल, पाइपलाइन या आपके कोड में डालने के लिए तैयार रहता है।
JSON से YAML तक: फँसाने वाली बातों के बिना स्वच्छ कॉन्फ़िग
YAML, JSON का एक सुपरसेट है
हर वैध JSON दस्तावेज़ वैध YAML भी होता है — यह YAML विनिर्देश की एक गारंटी है, कोई संयोग नहीं। YAML इसके ऊपर एक अधिक मानव-अनुकूल परत जोड़ता है: ब्रेस और ब्रैकेट के बजाय, संरचना इंडेंटेशन के ज़रिए व्यक्त होती है; अल्पविरामों के बजाय, आइटम अपनी-अपनी पंक्तियों पर बैठते हैं; और JSON के विपरीत, YAML कमेंट का समर्थन करता है। परिणाम किसी डेटा-ढेर के बजाय एक रूपरेखा जैसा पढ़ा जाता है, यही वजह है कि यह कॉन्फ़िगरेशन फ़ाइलों पर हावी रहता है।
चूँकि डेटा मॉडल इतनी क़रीब से मेल खाते हैं — दोनों में map, sequence, स्ट्रिंग, संख्याएँ, बूलियन, और null होते हैं — इनके बीच रूपांतरण यांत्रिक और स्वयं मानों के लिए बिना हानि वाला है। यह रूपांतरण उसी वृक्ष को एक अलग सतही सिंटैक्स में फिर से व्यक्त करता है। एक चीज़ जो किसी JSON राउंड ट्रिप में बच नहीं सकती वह है कमेंट, क्योंकि JSON में उन्हें रखने की कोई जगह नहीं है।
इंडेंटेशन ही सिंटैक्स है
YAML में, व्हाइटस्पेस सजावटी नहीं है — वह संरचना है। नेस्टिंग बच्चे की कुंजियों को उनके माता-पिता से अधिक इंडेंट करके दिखाई जाती है, और एक ही गहराई पर के आइटम को एक ही इंडेंटेशन साझा करना ज़रूरी है। किसी कुंजी के नीचे नेस्टेड एक map उसके नीचे इंडेंट की हुई पंक्तियों का एक समूह बन जाता है; एक सूची ऐसी पंक्तियाँ बन जाती हैं जिनमें से हर एक डैश से शुरू होती है। इंडेंटेशन ग़लत कीजिए और आप केवल रूप नहीं, बल्कि अर्थ बदल देते हैं, जो इसके बिल्कुल उलट है कि JSON व्हाइटस्पेस को कैसे मानता है।
एक सुसंगत इंडेंट चौड़ाई चुनिए — कॉन्फ़िग फ़ाइलों के लिए दो स्पेस आम डिफ़ॉल्ट है, कुछ घराने की शैलियों के लिए चार — और उसे हर जगह लागू कीजिए। कन्वर्टर स्वच्छ, एकसमान इंडेंटेशन उत्सर्जित करता है ताकि आप पंक्तियों को हाथ से संरेखित करने के बजाय एक सही आधार-रेखा से शुरू करें।
टैब निषिद्ध हैं
यह वह नियम है जो लगभग हर किसी को पहली बार फँसाता है। YAML विनिर्देश इंडेंटेशन के लिए टैब वर्णों को स्पष्ट रूप से अस्वीकार करता है; आपको स्पेस ही इस्तेमाल करने चाहिए। एक संपादक जो आपके Tab कुंजी दबाने पर एक टैब डालने के लिए कॉन्फ़िगर हो, वह चुपचाप एक ऐसी फ़ाइल बना देगा जो पार्स होने में विफल हो जाती है, अक्सर एक ऐसे त्रुटि संदेश के साथ जो ग़लत जगह की ओर इशारा करता है, क्योंकि पार्सर संरचना के टूटने को एक-दो पंक्ति बाद ही भाँप पाता है।
अगर कोई YAML फ़ाइल लोड होने से इनकार करे और इंडेंटेशन सही दिखे, तो पहले टैब की जाँच कीजिए। अपने संपादक को YAML फ़ाइलों के लिए व्हाइटस्पेस दिखाने या टैब को स्पेस में बदलने के लिए कॉन्फ़िगर कीजिए। JSON से रूपांतरण इसे पूरी तरह टाल देता है, क्योंकि उत्पन्न आउटपुट शुरू से ही स्पेस-इंडेंटेड होता है।
नॉर्वे समस्या और अन्य चौंकाने वाले बूलियन
पुराने YAML पार्सर खाली शब्दों की एक चौंका देने वाली श्रृंखला को बूलियन के रूप में पढ़ते हैं: केवल true और false ही नहीं, बल्कि विभिन्न कैपिटलाइज़ेशन में yes, no, on, और off भी। क्लासिक आपदा देश-कोड की एक सूची है जहाँ Norway की प्रविष्टि, खाली अक्षरों n और o के रूप में लिखी, बूलियन false के रूप में पढ़ी जाती है और चुपचाप आपके डेटा से ग़ायब हो जाती है। on या off के रूप में लिखे टॉगल फ़्लैग भी इसी तरह टाइप बदल सकते हैं।
बचाव है उद्धरण। कोई भी ऐसी स्ट्रिंग जिसे किसी बूलियन, किसी संख्या, किसी तारीख़, या null के रूप में ग़लत समझा जा सकता हो, उसे उद्धरणों में लपेटा जाना चाहिए ताकि पार्सर उसे टेक्स्ट के रूप में रखे। safe schema के इर्द-गिर्द बने आधुनिक पार्सर सख्त हैं और इसके प्रति कहीं कम प्रवण हैं, लेकिन अस्पष्ट scalar को उद्धरण में रखने की आदत बनाए रखने लायक है, खासकर छोटे कोड, संस्करण-जैसी स्ट्रिंग, और उपयोगकर्ता-आपूर्ति की किसी भी चीज़ के लिए।
और scalar फँसाने वाली बातें: संख्याएँ, आगे लगे शून्य, और null
कुछ अन्य खाली मान लोगों को चौंकाते हैं। आगे लगे शून्य वाला एक ZIP कोड या पुर्ज़ा-संख्या एक संख्या के रूप में पढ़ी जा सकती है और शून्य खो सकती है, या कुछ पार्सर में octal के रूप में पढ़ी जा सकती है। 1.20 जैसी संस्करण स्ट्रिंग संख्या 1.2 में बदली जा सकती हैं, जिससे पीछे लगा शून्य गिर जाता है। शब्द null, एक खाली मान, और एक अकेला टिल्ड सब null का मतलब रखते हैं। बूलियन जाल की तरह, इलाज वही है: ऐसी हर चीज़ को उद्धरण में रखिए जिसका पाठ्य रूप मायने रखता हो।
चूँकि यह टूल safe schema के साथ पार्स करता है, यह केवल मानक डेटा प्रकार लोड करता है और कभी मनमाने ऑब्जेक्ट नहीं बनाता या कोड नहीं चलाता, इसलिए अविश्वसनीय YAML पेस्ट करना कुछ भी नहीं चला सकता। यह रूपांतरण को पूर्वानुमेय रखता है: जो आपको वापस मिलता है वह सादे map, sequence, और scalar होते हैं, बिना किसी चौंकाने वाले कस्टम प्रकार के जो tag के ज़रिए चुपके से अंदर आ जाएँ।
YAML असल में कहाँ रहता है
YAML की पठनीयता ने इसे इन्फ़्रास्ट्रक्चर और CI टूलिंग की साझा भाषा बना दिया। Docker Compose फ़ाइलें, Kubernetes manifest, GitHub Actions और GitLab CI पाइपलाइन, Ansible playbook, और अनगिनत एप्लिकेशन कॉन्फ़िग फ़ाइलें सब YAML हैं। इनमें से हर एक में, जब किसी मानव को उत्पादन कॉन्फ़िगरेशन में किसी बदलाव की समीक्षा करनी हो, तब YAML जिन कमेंट और स्वच्छ डिफ़ की अनुमति देता है वे एक असली फ़ायदा होते हैं।
JSON, इसके विपरीत, API के ऊपर मशीन-से-मशीन आदान-प्रदान के लिए बेहतर फ़िट बना रहता है, जहाँ इसकी सख्ती और व्हाइटस्पेस-संवेदनशीलता का अभाव अस्पष्टता घटाते हैं। एक आम पैटर्न है मानवीय सहूलियत के लिए YAML में रचना और संपादन करना, फिर JSON में बदलना जब कोई टूल या एंडपॉइंट इसकी माँग करे — और ठीक यही वजह है कि यह कन्वर्टर दोनों दिशाओं में चलता है।
ब्लॉक शैली, फ़्लो शैली, और आउटपुट पढ़ना
YAML एक ही डेटा को दो तरह से व्यक्त कर सकता है। ब्लॉक शैली map और सूचियों को इंडेंट की हुई पंक्तियों में फैलाती है और पठनीय कॉन्फ़िग के लिए वही है जो आप चाहते हैं। फ़्लो शैली इनलाइन ब्रेस और ब्रैकेट का उपयोग करती है और लगभग बिल्कुल JSON जैसी दिखती है, जो किसी बड़े दस्तावेज़ में अंतर्निहित छोटे, संक्षिप्त मानों के लिए कभी-कभी काम की होती है। दोनों को जानना आपको दूसरे लोगों द्वारा लिखे YAML को बिना उलझन के पढ़ने में मदद करता है।
जब आप यहाँ रूपांतरण करते हैं, तो JSON पेस्ट कीजिए, अपनी इंडेंट चौड़ाई चुनिए, और किसी रिपॉज़िटरी में डालने से पहले ब्लॉक-शैली के आउटपुट की समीक्षा कीजिए। सब कुछ स्थानीय रूप से आपके ब्राउज़र में होता है, इसलिए किसी कॉन्फ़िग फ़ाइल के रहस्य — टोकन, कनेक्शन स्ट्रिंग, आंतरिक होस्टनाम — कभी आपके डिवाइस से बाहर नहीं जाते, जो असली परिनियोजन manifest को साफ़-सुथरे उदाहरणों के बजाय रूपांतरित करना सुरक्षित बनाता है।
अक्सर पूछे जाने वाले प्रश्न
JSON और YAML में क्या अंतर है?
मैं JSON को YAML में कैसे बदलूँ?
क्या यह YAML को वापस JSON में बदल सकता है?
क्या यहाँ अविश्वसनीय YAML को पार्स करना सुरक्षित है?
क्या मेरा डेटा किसी सर्वर पर अपलोड किया जाता है?
संबंधित टूल्स
इन उपयोगी टूल्स के साथ आगे बढ़ें