JSON से YAML कन्वर्टर
Kubernetes, Docker Compose, GitHub Actions या Ansible के लिए JSON को साफ़, इंसानों के लिए आसान YAML में बदलें, इंडेंटेशन, शैली और कोट्स पर पूरे नियंत्रण के साथ।
आपके ब्राउज़र में चलता हैसाइन-अप ज़रूरी नहींकुछ भी अपलोड नहीं होता
JSON से YAML का उपयोग कैसे करें
- बाएँ बॉक्स में JSON पेस्ट करें या कोई
.jsonफ़ाइल खोलें। - आपके टाइप करते ही दाईं ओर YAML दिखता है।
- इंडेंट (2 या 4 स्पेस) और शैली चुनें: block (हर लाइन में एक की) या किसी तय नेस्टिंग लेवल से flow (
{a: 1}/[x, y])। - कोट्स की शैली चुनें और वर्णक्रम चाहिए तो की सॉर्ट करें पर टिक करें।
- YAML कॉपी या डाउनलोड करें। अमान्य JSON लाइन, कॉलम और संभावित कारण के साथ बताया जाता है।
JSON को YAML में क्यों बदलें?
JSON मशीनों और API के लिए आदर्श है, लेकिन YAML इंसानों के लिए पढ़ना और एडिट करना आसान है: न ब्रेसेस, न ज़रूरी कोट्स, और कमेंट का सपोर्ट। Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI और Ansible समेत ज़्यादातर इन्फ़्रास्ट्रक्चर टूल YAML में कॉन्फ़िगर होते हैं, जबकि जिस डेटा से आप शुरू करते हैं (API आउटपुट, kubectl get -o json, Terraform state) वह अक्सर JSON होता है।
Block बनाम flow शैली
Block शैली हर की और लिस्ट आइटम को अपनी लाइन पर रखती है और कॉन्फ़िग फ़ाइलों के लिए पारंपरिक विकल्प है। Flow शैली JSON की तरह इनलाइन {} और [] इस्तेमाल करती है और छोटे अंतिम स्ट्रक्चर को कॉम्पैक्ट रखती है। “लेवल 2 से Flow” ऊपर के दो लेवल को block शैली में रखता है और उससे गहरा सब कुछ इनलाइन करता है, जो पोर्ट या env vars जैसे छोटे ऑब्जेक्ट की लंबी लिस्ट के लिए अच्छा काम करता है।
सुरक्षित कोटिंग
जिन स्ट्रिंग को YAML पार्सर गलत पढ़ सकता है, वे अपने-आप कोट होती हैं: 'no', 'on', '1.0', 'null' जैसी वैल्यू, शुरुआत में * या & वाली स्ट्रिंग, और : वाली स्ट्रिंग। अगर आपकी स्टाइल गाइड हर स्ट्रिंग को कोट करना चाहती है, तो हमेशा सिंगल या हमेशा डबल चुनें।
YAML 1.1 बनाम 1.2 की पेचीदगियाँ
यह कन्वर्टर मौजूदा स्पेसिफ़िकेशन YAML 1.2 का पालन करता है। कई पुराने टूल (PyYAML, Ruby का Psych, कुछ Kubernetes और Ansible वर्ज़न) अब भी YAML 1.1 पढ़ते हैं, जहाँ नियम अलग हैं:
- Norway समस्या: YAML 1.1 में
country: noका मतलबfalseहै, इसलिए नॉर्वे का देश कोडNOगायब हो जाता है। यहीyes,on,off,yऔरnके साथ होता है। YAML 1.2 सिर्फ़trueऔरfalseको बूलियन मानता है। - ऑक्टल संख्याएँ:
07551.1 में ऑक्टल है लेकिन 1.2 में साधारण दशमलव, जो0o755इस्तेमाल करता है। सुरक्षित रहने के लिए फ़ाइल मोड को कोट करें। - Sexagesimal संख्याएँ: 1.1 में
22:30संख्या 1350 के रूप में पार्स हो सकता है। समय और"8080:80"जैसी पोर्ट मैपिंग को कोट करें।
JSON → YAML दिशा अस्पष्ट स्ट्रिंग ('no', 'on', 'y') को अपने-आप कोट करती है, इसलिए इसका बनाया YAML दोनों वर्ज़न में एक जैसा पढ़ा जाता है।
अक्सर पूछे जाने वाले सवाल
क्या कन्वर्ज़न में कुछ खोता है?
कुछ स्ट्रिंग कोट क्यों होती हैं और कुछ नहीं?
'yes', '123' या विशेष अक्षरों वाली स्ट्रिंग। बाकी सब पढ़ने में आसानी के लिए सादा छोड़ा जाता है।क्या मैं आउटपुट में कमेंट जोड़ सकता हूँ?
# comments जोड़ सकते हैं।