YAML को JSON में बदलें

यहाँ आप YAML को JSON में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।

  • कहाँ चलता है आपके ब्राउज़र में। फ़ाइल कभी अपलोड नहीं होती।
  • बिना नुक़सान कुछ नहीं छोड़ा जाता। YAML में जो था, JSON में ठीक वही रहता है।
  • फ़ाइल आकार की सीमा हर फ़ाइल 100 MB तक, मुफ़्त, बिना खाते के।

एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।

YAML फ़ाइल को टेक्स्ट नहीं, डेटा की तरह पढ़ना

YAML 1.2 जानबूझकर JSON का सुपरसेट है, यानी हर JSON दस्तावेज़ पहले से मान्य YAML है, और यह बदलाव सिर्फ़ शॉर्टहैंड हटाकर वही डेटा फिर लिखता है। यही इसे डीबग करने के लिए उपयोगी बनाता है — JSON वे वैल्यू दिखाता है जो पार्सर ने बनाए, जो आपने टाइप किए वे अक्षर नहीं।

ज़्यादातर हैरानियाँ रिज़ॉल्यूशन की हैरानियाँ हैं — कोई वर्शन जो संख्या बन गया, कोई शब्द जो बूलियन बन गया। इनमें से कुछ भी YAML में नहीं दिखता, सब JSON में दिखता है।

मल्टी-डॉक्यूमेंट YAML स्ट्रीम बदलाव को रोक देती है

YAML फ़ाइलें एक स्ट्रीम में कई दस्तावेज़ रख सकती हैं, --- से अलग किए हुए। Kubernetes मैनिफ़ेस्ट इसे हमेशा इस्तेमाल करते हैं। JSON के पास इसका कोई समकक्ष नहीं — JSON फ़ाइल एक वैल्यू है — तो पार्सर चुपचाप कोई दस्तावेज़ चुनने के बजाय मना कर देता है।

उपाय यांत्रिक है — फ़ाइल को --- मार्कर पर बाँट लीजिए और हर दस्तावेज़ अलग से बदलिए। शुरुआत में अकेला --- ठीक है, बीच में दूसरा दस्तावेज़ ही रोकता है।

एंकर फैलते हैं, मर्ज-की मर्ज नहीं होती

कोई एंकर और उसकी एलियास कॉपी में बदल जाते हैं। जो .gitlab-ci.yml &defaults एक बार परिभाषित कर छह जॉब में एलियास करता है, वह JSON में छह पूरी कॉपी बनाता है, क्योंकि JSON के पास कहीं और परिभाषित वैल्यू को इशारा करने का कोई तरीक़ा नहीं।

मर्ज-की वह हिस्सा है जो लोगों को फँसाता है — << के बाद एलियास वाली पंक्ति YAML 1.1 की परंपरा है, YAML 1.2 कोर स्कीमा का हिस्सा नहीं, तो यह "<<" नाम की सादी की बन जाती है।

!Ref जैसे कस्टम टैग बिना एरर के ग़ायब हो जाते हैं

CloudFormation के शॉर्ट-फ़ॉर्म और दर्जनों दूसरे डायलेक्ट कस्टम टैग पर मतलब टिकाते हैं — !Ref myBucket, !GetAtt। पार्सर उन टैग को नहीं जानता, तो हर एक को उसकी सादी वैल्यू में बदल देता है — !Ref myBucket बन जाता है सादी स्ट्रिंग "myBucket"।

यह इस पेज का सबसे ख़तरनाक बदलाव है, क्योंकि नतीजा मान्य, प्रशंसनीय और ग़लत दिखता है। अगर आपकी YAML कस्टम टैग वाले किसी डायलेक्ट की है, यह कन्वर्टर वह अर्थ खो देगा।

YAML फ़ाइल में कौन-से शब्द बूलियन हैं

YAML 1.1 yes, no, on, off को बूलियन मानता था, जहाँ से देश-कोड "no" गलती से false बन जाने की मशहूर समस्या आई। यहाँ इस्तेमाल पार्सर YAML 1.2 है, जिसका कोर स्कीमा सिर्फ़ true और false पहचानता है।

यह डिफ़ॉल्ट है, गारंटी नहीं — जिस फ़ाइल की पहली पंक्ति %YAML 1.1 डायरेक्टिव है, वह 1.1 की तरह पढ़ी जाती है, और तब on सच में true बन जाता है।

वे संख्याएँ जो YAML पार्सर JSON से पहले ही तय कर देता है

1.0 लिखी वैल्यू संख्या 1 बनती है, तो कोई तय किया गया वर्शन पूर्णांक बनकर अपना दशमलव खो देता है। 0755 लिखी वैल्यू 755 बनती है। स्रोत में किसी को कोट में रखने से वह स्ट्रिंग बनी रहती है।

बड़े पूर्णांक चुपचाप सटीकता खो देते हैं — YAML में कोई सीमा नहीं, JSON संख्या IEEE डबल है, तो 64-बिट पहचानकर्ता थोड़ा बदल सकता है। बड़े ID वाली फ़ाइल में उन्हें कोट में रखिए।

टाइमस्टैम्प, बाइनरी डेटा और बाक़ी YAML टाइप जो JSON नहीं रख सकता

!!timestamp टैग वाली वैल्यू तारीख़ बनती है और फिर ISO 8601 स्ट्रिंग, UTC में सामान्यीकृत — तो माइनस-पाँच घंटे के ऑफ़सेट के साथ लिखी टाइमस्टैम्प शिफ़्ट होकर Z के साथ आती है।

!!binary वैल्यू बाइट में डिकोड होकर पोज़िशन-कुंजी वाले ऑब्जेक्ट के तौर पर सीरियलाइज़ होती है। बिना टैग वाली तारीख़ें साधारण स्ट्रिंग बनी रहती हैं, जो आमतौर पर सही चाहिए होता है।

YAML जो JSON बनने से पहले ही पार्स होना बंद कर देती है

दो एरर बदलाव पूरी तरह रोक देते हैं। एक ही मैपिंग में डुप्लिकेट की मना है — यह कई YAML टूल से ज़्यादा सख़्त है और आमतौर पर सही व्यवहार है।

दूसरा है इंडेंटेशन के लिए टैब का इस्तेमाल — YAML वहाँ टैब मना करता है। दोनों एरर असल में कन्वर्टर की मदद हैं — इनमें से किसी भी दिक़्क़त वाली फ़ाइल का व्यवहार पहले से इस पर निर्भर है कि उसे कौन-सा पार्सर पढ़ता है।

JSON मिलने के बाद वह किस काम आता है

आउटपुट दो-स्पेस इंडेंट के साथ आता है, तो jq, JSON Schema validator और कोई भी HTTP क्लाइंट इसे सीधे पढ़ते हैं। वैलिडेशन इस सफ़र की सबसे मज़बूत वजह है — JSON Schema परिपक्व और व्यापक है।

यह YAML का विकल्प नहीं है। कमेंट चले जाते हैं, एंकर दोहराव में फैल जाते हैं, कस्टम टैग चुपचाप वाष्पित हो जाते हैं — YAML को स्रोत मानिए और JSON को उसकी झलक।

YAML को JSON में ऐसे बदलें

  1. अपनी YAML फ़ाइल इस पेज पर छोड़ें, या चुनने के लिए दबाएँ।
  2. लक्ष्य के रूप में JSON चुनें। कन्वर्ज़न आपके ब्राउज़र में होता है और फ़ाइल अपलोड नहीं होती।
  3. तैयार JSON फ़ाइल डाउनलोड कर लें।

YAML या JSON: क्या बदलता है

YAML और JSON की तुलना
YAMLJSON
पूरा नामYAML Ain't Markup LanguageJavaScript Object Notation
फ़ाइल एक्सटेंशन.yaml, .yml.json
मीडिया टाइपapplication/yamlapplication/json
पहली बार प्रकाशित20012001
विनिर्देशYAML 1.2RFC 8259
लाइसेंसखुला मानकखुला मानक
आज की स्थितिमौजूदामौजूदा
ब्राउज़र में खुलता हैकोई ब्राउज़र नहींहर ब्राउज़र
इसकी जगह विचारणीयTOMLXML, NDJSON

क्या खो जाता है

टिप्पणियाँ साथ नहीं जातीं। YAML में फ़ाइल के साथ समझाइश लिखी जा सकती है और JSON में उसके लिए कोई वाक्य-रचना ही नहीं, इसलिए हर समझाने वाली पंक्ति छूट जाती है — और चोट ठीक उन्हीं फ़ाइलों पर पड़ती है जिन पर टिप्पणियाँ लिखी जाती हैं: वह कॉन्फ़िगरेशन जिसे किसी और को सँभालना है।

क्या बचा रहता है

कुछ नहीं खोता। YAML और JSON — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।

नतीजा खोलना

JSON को हर मौजूदा ब्राउज़र खोल लेता है। YAML को इतने भी नहीं। अगर फ़ाइल किसी वेब पेज या किसी फ़ॉर्म तक जा रही है, तो आम तौर पर इस कन्वर्ज़न की पूरी वजह यही है।

Visual Studio Code YAML और JSON — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।

कौन-सा फ़ॉर्मेट किस काम के लिए है

YAML 2001 में आया। यह YAML 1.2 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।

JSON 2001 से चला आ रहा है, और RFC 8259 में तय किया गया है। Visual Studio Code, jq और Postman इस फ़ॉर्मेट को पढ़ लेते है।

YAML से JSON: आम सवाल

क्या मेरी YAML फ़ाइल कहीं अपलोड होती है?

नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।

क्या YAML को JSON में बदलना मुफ़्त है?

हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।

YAML को JSON में बदलने पर क्या गुणवत्ता जाती है?

नहीं। JSON वही सामग्री बिना कुछ फेंके सँभालता है: नतीजा गुणवत्ता में असली फ़ाइल जैसा ही होता है।

क्या YAML से JSON बिना नुक़सान का है?

कुछ नहीं खोता। YAML और JSON — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।

YAML से JSON जाने पर क्या टिप्पणियाँ बची रहती हैं?

टिप्पणियाँ साथ नहीं जातीं। YAML में फ़ाइल के साथ समझाइश लिखी जा सकती है और JSON में उसके लिए कोई वाक्य-रचना ही नहीं, इसलिए हर समझाने वाली पंक्ति छूट जाती है — और चोट ठीक उन्हीं फ़ाइलों पर पड़ती है जिन पर टिप्पणियाँ लिखी जाती हैं: वह कॉन्फ़िगरेशन जिसे किसी और को सँभालना है।

इन फ़ॉर्मेट के बारे में और