YAML से JSON रूपांतरण, YAML (YAML Ain't Markup Language) में लिखे डेटा को JSON (JavaScript Object Notation) में परिवर्तित करता है। दोनों फ़ॉर्मेट संरचित डेटा को key-value pairs, sequences और नेस्टेड objects के रूप में दर्शाते हैं, लेकिन उनका सिंटैक्स भिन्न होता है। YAML इंडेंटेशन और न्यूनतम विराम चिह्नों का उपयोग करता है, जबकि JSON कर्ली ब्रेसेज़, ब्रैकेट और अनिवार्य उद्धरण चिह्नों पर निर्भर करता है। दोनों के बीच रूपांतरण एक सामान्य कार्य है जब कॉन्फ़िगरेशन डेटा को ऐसे systems के बीच transfer करना हो जो अलग-अलग format expect करते हों।
YAML को मानव-पठनीयता के लिए बनाया गया था। यह comments, multi-line strings, anchors और aliases को support करता है — जिनमें से कोई भी JSON में उपलब्ध नहीं है। जब आप YAML को JSON में बदलते हैं, तो YAML-specific features resolve हो जाती हैं: anchors inline expand हो जाते हैं, comments हट जाते हैं, और multi-line blocks escaped strings बन जाते हैं। परिणामी JSON वैध होता है जिसे कोई भी JSON पार्सर पढ़ सकता है।
YAML 1.2 spec JSON को YAML का subset define करता है, अर्थात प्रत्येक वैध JSON दस्तावेज़ वैध YAML भी है। इसका विपरीत सत्य नहीं है। टिप्पणियाँ, एंकर या जटिल कुंजियों वाले YAML दस्तावेज़ों का JSON में कोई सीधा समतुल्य नहीं होता और रूपांतरण के दौरान उन्हें सरल बनाना पड़ता है। यह tool वह रूपांतरण स्वचालित रूप से संभालता है और किसी भी वैध YAML इनपुट से स्वच्छ, सुव्यवस्थित JSON उत्पन्न करता है।
YAML को JSON में हाथ से बदलना त्रुटि-प्रवण है, विशेषकर गहरे नेस्टेड संरचनाओं या बहु-पंक्ति मानों के साथ। ब्राउज़र-आधारित कनवर्टर तत्काल परिणाम देता है और YAML सिंटैक्स त्रुटियों को आपके एप्लिकेशन तक पहुँचने से पहले ही पकड़ लेता है।
⚡
ब्राउज़र में तत्काल रूपांतरण
अपना YAML चिपकाएँ और मिलीसेकंड में सुव्यवस्थित JSON आउटपुट प्राप्त करें। इंस्टॉल करने के लिए कोई CLI उपकरण नहीं, कोई बिल्ड चरण नहीं, कोई dependencies manage करने की ज़रूरत नहीं।
🔀
किसी भी वैध YAML संरचना को संभाल सकता है
नेस्टेड mappings, sequences, multi-line strings (literal और folded ब्लॉक), anchors, aliases, merge keys और सभी YAML 1.2 scalar types को support करता है।
🔒
आपका डेटा निजी रहता है
सभी पार्सिंग JavaScript का उपयोग करके आपके ब्राउज़र में चलती है। आपका YAML कभी किसी सर्वर को नहीं भेजा जाता, जिससे यह ऐसी कॉन्फ़िगरेशन फ़ाइलों के लिए सुरक्षित है जिनमें क्रेडेंशियल या आंतरिक पथ हों।
📋
आउटपुट फ़ॉर्मेट की प्रतिलिपि बनाएँ या समायोजित करें
2-स्पेस और 4-स्पेस इंडेंटेशन के बीच स्विच करें। JSON परिणाम को एक क्लिक से क्लिपबोर्ड पर प्रतिलिपि करें और सीधे कोड, API अनुरोधों या कॉन्फ़िग फ़ाइलों में उपयोग करें।
YAML से JSON के उपयोग के मामले
फ्रंटएंड विकास
किसी डिज़ाइन सिस्टम या CMS की YAML कॉन्फ़िगरेशन फ़ाइलों को JavaScript बंडलर, REST API या i18n लाइब्रेरी द्वारा उपयोग के लिए JSON में बदलें जो JSON input expect करती हैं।
बैकएंड इंजीनियरिंग
Spring Boot की application.yml या Rails की database.yml को JSON में रूपांतरित करें ताकि उसे डिप्लॉयमेंट स्क्रिप्ट, API गेटवे, या ऐसी सेवाओं में उपयोग किया जा सके जो केवल JSON कॉन्फ़िगरेशन स्वीकार करती हैं।
DevOps और CI/CD
docker-compose.yml, GitHub Actions वर्कफ़्लो, या Kubernetes मैनिफेस्ट को JSON में बदलें — सत्यापन उपकरणों, OPA जैसे नीति इंजन, या jq के साथ डीबगिंग के लिए।
QA और परीक्षण
YAML परीक्षण फ़िक्सचर को JSON पेलोड में बदलें — Postman, Insomnia, या स्वचालित परीक्षण सूटों के लिए जो JSON request body expect करते हैं।
डेटा इंजीनियरिंग
YAML-फ़ॉर्मेट पाइपलाइन परिभाषाओं (Airflow, dbt, Dagster) को स्कीमा सत्यापन, प्रोग्रामेटिक संचालन, या मेटाडेटा कैटलॉग के साथ एकीकरण के लिए JSON में बदलें।
अध्ययन और दस्तावेज़ीकरण
कॉन्फ़िगरेशन फ़ॉर्मेट का अध्ययन करते समय या दस्तावेज़ीकरण लिखते समय YAML संरचनाएँ अपने JSON समतुल्यों से कैसे मेल खाती हैं, यह तुरंत देखें।
YAML से JSON प्रकार मैपिंग संदर्भ
रूपांतरण के दौरान प्रत्येक YAML डेटा प्रकार एक विशिष्ट JSON प्रकार में मैप होता है। नीचे दी गई तालिका प्रत्येक YAML संरचना को उसके JSON आउटपुट के साथ दर्शाती है। इन मैपिंग को समझने से आप अनुमान लगा सकते हैं कि रूपांतरण के बाद आपका YAML डेटा कैसा दिखेगा और बूलियन या null मानों जैसे प्रकारों में अप्रत्याशित परिणामों से बच सकते हैं।
YAML प्रकार
YAML सिंटैक्स
JSON आउटपुट
Mapping
name: Alice
{ "name": "Alice" }
Sequence
- apple\n- banana
["apple", "banana"]
String
greeting: hello world
"hello world"
Integer
count: 42
42
Float
ratio: 3.14
3.14
Boolean
active: true
true
Null
value: null
null
Multiline (|)
bio: |\n Line one\n Line two
"Line one\nLine two\n"
Folded (>)
note: >\n A long\n paragraph
"A long paragraph\n"
Anchor/Alias
&default\n <<: *default
Resolved inline (no $ref)
YAML बनाम JSON सिंटैक्स
YAML और JSON एक ही डेटा मॉडल को भिन्न सिंटैक्स नियमों के साथ दर्शाते हैं। नीचे दिए गए अंतर बताते हैं कि टिप्पणियाँ और एंकर जैसी कुछ YAML सुविधाओं का JSON में कोई समतुल्य क्यों नहीं है।
YAML
नेस्टिंग के लिए इंडेंटेशन का उपयोग (कोई ब्रेसेज़ नहीं)। # के साथ टिप्पणियों का समर्थन। स्ट्रिंग को सामान्यतः उद्धरण चिह्नों की आवश्यकता नहीं। | (literal) और > (folded) ब्लॉक स्केलर के साथ बहु-पंक्ति मानों की अनुमति। Anchors (&name) और aliases (*name) से reuse का support। YAML 1.2 में केवल true और false बूलियन मानों के रूप में मान्यता प्राप्त हैं; पुराने YAML 1.1 पार्सर yes, no, on और off को भी स्वीकार करते थे, लेकिन YAML 1.2 में ये सामान्य स्ट्रिंग माने जाते हैं।
JSON
नेस्टिंग के लिए ब्रेसेज़ और ब्रैकेट का उपयोग। कोई टिप्पणी सिंटैक्स नहीं। सभी स्ट्रिंग को double-quoted होना अनिवार्य। कोई बहु-पंक्ति स्ट्रिंग literal नहीं — इसके बजाय \n escape sequence use करें। कोई anchor या alias mechanism नहीं। बूलियन मान सख्ती से lowercase true और false हैं। सभी कुंजियाँ उद्धृत स्ट्रिंग होनी चाहिए। trailing commas अमान्य हैं।
कोड उदाहरण
नीचे YAML को JSON में प्रोग्रामेटिक रूप से बदलने के कार्यशील उदाहरण दिए गए हैं। प्रत्येक उदाहरण एक YAML स्ट्रिंग पार्स करता है और सुव्यवस्थित JSON आउटपुट करता है।
# Convert a YAML file to JSON with yq
yq -o=json config.yaml > config.json
# Pipe YAML into yq for one-off conversion
echo "name: demo" | yq -o=json
# → { "name": "demo" }
# Python one-liner (no extra install on most systems)
python3 -c "import yaml, json, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < config.yaml
अक्सर पूछे जाने वाले प्रश्न
क्या YAML, JSON का सुपरसेट है?
हाँ, YAML 1.2 (2009 में प्रकाशित) के अनुसार। प्रत्येक वैध JSON दस्तावेज़ वैध YAML भी है। YAML विनिर्देश को जानबूझकर पूर्ण JSON अनुकूलता सुनिश्चित करने के लिए अद्यतन किया गया था। हालाँकि, इसका विपरीत सत्य नहीं है — टिप्पणियाँ, एंकर और बिना उद्धरण वाली कुंजियाँ जैसी YAML सुविधाओं का JSON में कोई समतुल्य नहीं है।
रूपांतरण के दौरान YAML टिप्पणियों का क्या होता है?
टिप्पणियाँ हटा दी जाती हैं। JSON में कोई टिप्पणी सिंटैक्स नहीं है, इसलिए आपके YAML इनपुट में # से शुरू होने वाली कोई भी पंक्ति रूपांतरण के दौरान खो जाती है। यदि आपको टिप्पणियाँ सुरक्षित रखनी हों, तो मूल YAML फ़ाइल को सत्य के स्रोत के रूप में रखें और जब भी आवश्यकता हो उससे JSON उत्पन्न करें।
YAML anchors और aliases को कैसे handle किया जाता है?
Anchors (&name) और aliases (*name) parsing के दौरान resolve किए जाते हैं। Alias को anchored data की पूरी copy से replace किया जाता है। Output JSON में कोई references नहीं होते — सभी values inline expand होती हैं। Merge keys (<<: *name) भी इसी तरह resolve होते हैं।
क्या YAML से JSON रूपांतरण में डेटा की हानि हो सकती है?
डेटा मानों के लिए नहीं। सभी YAML scalar प्रकारों (स्ट्रिंग, संख्याएँ, बूलियन, null) के JSON में सीधे समतुल्य हैं। जो खो जाता है: टिप्पणियाँ, tag directives, एंकर नाम, और block व flow style के बीच का अंतर। यदि आपका YAML कस्टम टैग (!!python/object, !!timestamp) पर निर्भर करता है, तो वे सामान्य मानों में समाधान हो जाते हैं या पार्सर के आधार पर पार्स त्रुटि उत्पन्न कर सकते हैं।
मेरा YAML बूलियन 'yes' JSON में स्ट्रिंग क्यों बन जाता है?
यह tool js-yaml v4 का उपयोग करता है जो YAML 1.2 बूलियन समाधान का पालन करता है। केवल true और false (किसी भी केस में) बूलियन के रूप में मान्यता प्राप्त हैं। yes, no, on और off जैसे मान सामान्य स्ट्रिंग माने जाते हैं और JSON आउटपुट में उद्धृत स्ट्रिंग के रूप में दिखते हैं। यदि आपको अपेक्षित बूलियन की जगह अप्रत्याशित स्ट्रिंग मान दिखें, तो अपने YAML स्रोत में true या false का उपयोग करें।
यह tool अधिकतम कितने आकार की YAML फ़ाइल संभाल सकता है?
यह tool आपके ब्राउज़र में चलता है, इसलिए सीमा आपके डिवाइस की उपलब्ध मेमोरी पर निर्भर करती है। व्यवहार में, कई मेगाबाइट तक की फ़ाइलें बिना किसी समस्या के रूपांतरित होती हैं। बहुत बड़ी फ़ाइलों (50 MB से अधिक) के लिए yq जैसा CLI उपकरण या PyYAML के साथ Python स्क्रिप्ट अधिक विश्वसनीय होगा क्योंकि वे एक साथ सब कुछ मेमोरी में लोड करने के बजाय data को stream की तरह process कर सकते हैं।
बहु-पंक्ति YAML स्ट्रिंग JSON में कैसे रूपांतरित होती हैं?
YAML में दो बहु-पंक्ति ब्लॉक scalar शैलियाँ हैं। Literal blocks (|) JSON स्ट्रिंग में लाइन ब्रेक को \n वर्णों के रूप में संरक्षित करते हैं। Folded blocks (>) एकल लाइन ब्रेक को रिक्त स्थान से प्रतिस्थापित करते हैं, जिससे अनेक पंक्तियाँ एक अनुच्छेद बन जाती हैं। दोनों शैलियाँ डिफ़ॉल्ट रूप से एक trailing newline जोड़ती हैं, जिसे आप chomping indicator (|- या >-) से हटा सकते हैं।