tigtools

JSON ⇄ YAML कन्वर्टर

दिशा बदलें, अपना डेटा पेस्ट करें और तुरंत रूपांतरित परिणाम पाएँ। Kubernetes मैनिफ़ेस्ट, CI पाइपलाइन और ऐप कॉन्फ़िगरेशन के लिए उपयोगी।

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

दिशा
इंडेंटेशन

इस्तेमाल करने का तरीका

  1. रूपांतरण की दिशा चुनें: JSON → YAML या YAML → JSON।
  2. अपना डेटा पेस्ट करें या “उदाहरण आज़माएँ” दबाएँ। टाइप करते ही परिणाम अपडेट होता है।
  3. आउटपुट के लिए 2 या 4 स्पेस का इंडेंटेशन चुनें।
  4. परिणाम कॉपी करें या डाउनलोड करें। “आउटपुट को इनपुट के रूप में इस्तेमाल करें” दिशा बदल देता है, ताकि आप वापस रूपांतरण कर सकें।

यह कैसे काम करता है

यह रूपांतरण ओपन-सोर्स yaml लाइब्रेरी (संस्करण 2) का उपयोग करता है, जो YAML 1.2 विनिर्देश लागू करती है। व्यावहारिक रूप से YAML 1.2, JSON का सुपरसेट है, इसलिए कोई भी JSON दस्तावेज़ बिना किसी जानकारी के नुकसान के YAML में बदल जाता है। वहीं, केवल मैप, सूची, स्ट्रिंग, संख्या, बूलियन और null का उपयोग करने वाला YAML वापस उसी JSON में बदल जाता है।

YAML लिखते समय, यह टूल उन स्ट्रिंग के चारों ओर उद्धरण चिह्न लगाता है जिन्हें पाठक किसी दूसरी चीज़ के रूप में समझ सकता है। पुराने YAML 1.1 पार्सर, जैसे PyYAML और कई CI टूल, yes, no, on और off को बूलियन, 0777 को ऑक्टल संख्या और 2024-01-31 को तारीख़ मानते हैं। इसलिए इन्हें "yes", "0777" और "2024-01-31" के रूप में लिखा जाता है। लंबी स्ट्रिंग को कई पंक्तियों में नहीं बाँटा जाता। टिप्पणियाँ साथ नहीं रखी जा सकतीं, क्योंकि JSON में टिप्पणियों का कोई रूप नहीं है।

YAML पढ़ते समय, एंकर (&name) और उपनाम (*name), << मर्ज कुंजी समेत, विस्तारित किए जाते हैं। --- से अलग किए गए कई दस्तावेज़ों वाली फ़ाइल JSON ऐरे बन जाती है। आपके ब्राउज़र की सुरक्षा के लिए, उपनाम विस्तार सीमित है, जिससे “बिलियन लाफ़्स” दस्तावेज़ों को रोका जा सके। जिन YAML मानों के समकक्ष JSON में नहीं हैं, उन्हें यथासंभव निकटतम रूप में बदला जाता है: .inf और .nan null बन जाते हैं, और टाइमस्टैम्प स्ट्रिंग ही रहते हैं। सिंटैक्स की त्रुटियाँ उनकी पंक्ति और कॉलम के साथ दिखाई जाती हैं।

उदाहरण

Kubernetes मैनिफ़ेस्ट

स्क्रिप्ट द्वारा JSON में लिखा गया Deployment, kubectl उपयोगकर्ताओं की अपेक्षित YAML संरचना में बदल जाता है। इसमें containers के नीचे की सूचियाँ - name: web के रूप में लिखी जाती हैं। "no" जैसे मान उद्धरण चिह्नों में रहते हैं, ताकि वे स्ट्रिंग ही बने रहें।

एंकर वाला CI कॉन्फ़िगरेशन

एक पाइपलाइन फ़ाइल defaults: &defaults तय करती है और उन्हें <<: *defaults से दोबारा इस्तेमाल करती है। JSON में बदलने पर ठीक-ठीक पता चलता है कि मर्ज के बाद हर जॉब में कौन-सी कुंजियाँ होंगी।

OpenAPI विनिर्देश

OpenAPI फ़ाइल YAML में रखी जाती है, लेकिन कोड जनरेटर को JSON चाहिए। YAML पेस्ट करें, 2-स्पेस इंडेंटेशन चुनें और .json फ़ाइल डाउनलोड करें।

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

मेरे YAML में "yes" को उद्धरण चिह्नों में क्यों लिखा गया है?

YAML 1.1 नियमों के अनुसार, जिनका उपयोग PyYAML, Ansible और कई अन्य टूल अब भी करते हैं, बिना उद्धरण वाला yes, no, on या off बूलियन होता है। उद्धरण चिह्न लगाने से यह हर पार्सर में स्ट्रिंग बना रहता है। उद्धरण चिह्न मान का हिस्सा नहीं होते।

JSON में बदलने पर YAML की टिप्पणियाँ बनी रहती हैं?

नहीं। JSON में टिप्पणी लिखने का कोई सिंटैक्स नहीं है, इसलिए टिप्पणियाँ हटा दी जाती हैं। JSON को वापस YAML में बदलने पर वे फिर से नहीं आएँगी।

--- से अलग किए गए कई YAML दस्तावेज़ों का क्या होता है?

उन्हें क्रम से, हर दस्तावेज़ के लिए एक आइटम वाले JSON ऐरे में बदला जाता है। एक दस्तावेज़ सीधे अपने मान में बदल जाता है।

CloudFormation के !Ref जैसे कस्टम टैग का क्या होता है?

ऐप्लिकेशन-विशिष्ट टैग समझे नहीं जाते। टूल चेतावनी दिखाता है और टैग किए गए मान को साधारण मान के रूप में बदलता है। इसलिए !Ref MyBucket, "MyBucket" स्ट्रिंग बन जाता है और टैग हट जाता है।

गोपनीयता

दोनों दिशाओं में रूपांतरण पूरी तरह आपके ब्राउज़र में होता है। आपका JSON या YAML अपलोड या स्टोर नहीं किया जाता और न ही उसे एनालिटिक्स में शामिल किया जाता है।