JSON से YAML कन्वर्टर

Kubernetes, Docker Compose, GitHub Actions या Ansible के लिए JSON को साफ़, इंसानों के लिए आसान YAML में बदलें, इंडेंटेशन, शैली और कोट्स पर पूरे नियंत्रण के साथ।

आपके ब्राउज़र में चलता हैसाइन-अप ज़रूरी नहींकुछ भी अपलोड नहीं होता

JSON आउटपुट

JSON से YAML का उपयोग कैसे करें

  1. बाएँ बॉक्स में JSON पेस्ट करें या कोई .json फ़ाइल खोलें।
  2. आपके टाइप करते ही दाईं ओर YAML दिखता है।
  3. इंडेंट (2 या 4 स्पेस) और शैली चुनें: block (हर लाइन में एक की) या किसी तय नेस्टिंग लेवल से flow ({a: 1}/[x, y])।
  4. कोट्स की शैली चुनें और वर्णक्रम चाहिए तो की सॉर्ट करें पर टिक करें।
  5. 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 को बूलियन मानता है।
  • ऑक्टल संख्याएँ: 0755 1.1 में ऑक्टल है लेकिन 1.2 में साधारण दशमलव, जो 0o755 इस्तेमाल करता है। सुरक्षित रहने के लिए फ़ाइल मोड को कोट करें।
  • Sexagesimal संख्याएँ: 1.1 में 22:30 संख्या 1350 के रूप में पार्स हो सकता है। समय और "8080:80" जैसी पोर्ट मैपिंग को कोट करें।

JSON → YAML दिशा अस्पष्ट स्ट्रिंग ('no', 'on', 'y') को अपने-आप कोट करती है, इसलिए इसका बनाया YAML दोनों वर्ज़न में एक जैसा पढ़ा जाता है।

अक्सर पूछे जाने वाले सवाल

क्या कन्वर्ज़न में कुछ खोता है?
नहीं। हर JSON डॉक्यूमेंट मान्य YAML 1.2 है, और जनरेट किया गया YAML पार्स होकर बिल्कुल वही डेटा देता है। आप अदला-बदली दबाकर इसे जाँच सकते हैं।
कुछ स्ट्रिंग कोट क्यों होती हैं और कुछ नहीं?
सिर्फ़ ज़रूरत पड़ने पर के साथ कोट्स सिर्फ़ वहीं जोड़े जाते हैं जहाँ बिना कोट की वैल्यू का अर्थ बदल जाता, जैसे 'yes', '123' या विशेष अक्षरों वाली स्ट्रिंग। बाकी सब पढ़ने में आसानी के लिए सादा छोड़ा जाता है।
क्या मैं आउटपुट में कमेंट जोड़ सकता हूँ?
JSON में कमेंट नहीं होते, इसलिए कन्वर्ट करने को कुछ नहीं है, लेकिन कॉपी करने के बाद आप YAML में # comments जोड़ सकते हैं।
क्या की का क्रम बदलता है?
नहीं। जब तक आप की सॉर्ट करें पर टिक न करें, की अपने JSON क्रम में रहती हैं।
क्या मेरा डेटा निजी है?
हाँ। कन्वर्टर आपके ब्राउज़र में चलता है और आपके इनपुट के साथ कोई नेटवर्क रिक्वेस्ट नहीं करता।

संबंधित टूल्स