YAML से JSON कन्वर्टर
बाईं ओर YAML पेस्ट करें, दाईं ओर JSON पाएं। पूरी तरह आपके ब्राउज़र में चलता है — कोई अपलोड नहीं, कोई साइनअप नहीं।
- अपना YAML बाएँ टेक्स्ट एरिया में पेस्ट करें।
- "JSON में बदलें" पर क्लिक करें। आउटपुट दाईं ओर दिखेगा।
- परिणाम कॉपी करें या Download क्लिक करके data.json के रूप में सहेजें।
- यदि रूपांतरण विफल हो, तो त्रुटि संदेश गलत पंक्ति की ओर संकेत करता है।
यह क्या करता है?
YAML 1.2 दस्तावेज़ों को समतुल्य JSON में बदलता है। मैपिंग्स ऑब्जेक्ट बनती हैं, सीक्वेंस ऐरे बनते हैं, और स्केलर YAML नियमों के अनुसार संख्या, बूलियन, null या स्ट्रिंग के रूप में टाइप होते हैं। एंकर और एलियासेस रूपांतरण के दौरान हल हो जाते हैं। `---` से अलग किए गए मल्टी-डॉक्यूमेंट स्ट्रीम दस्तावेज़ों के ऐरे में समतल हो जाते हैं।
उदाहरण
YAML इनपुट:
name: Ada
tags:
- math
- logic
active: true JSON आउटपुट:
{
"name": "Ada",
"tags": [
"math",
"logic"
],
"active": true
} सामान्य YAML त्रुटियाँ और उन्हें कैसे ठीक करें
YAML व्हाइटस्पेस के प्रति संवेदनशील है, जो अधिकांश "पार्स विफल" संदेशों का स्रोत है। पार्सर विफलता की लाइन और कॉलम बताता है — इन पैटर्न पर ध्यान दें।
- स्पेस के बजाय टैब। YAML 1.2 इंडेंटेशन के लिए टैब निषिद्ध करता है। हर टैब को स्पेस से बदलें — अधिकांश एडिटरों में "टैब को स्पेस में बदलें" कमांड है।
- मिश्रित इंडेंट स्तर। 4 स्पेस इंडेंटेड भाई के तहत 2 स्पेस इंडेंटेड बच्चा विफल होगा। एक इंडेंट चौड़ाई (आमतौर पर 2 स्पेस) चुनें और पूरे दस्तावेज़ में लगातार उपयोग करें।
- बूलियन जैसी दिखने वाली स्ट्रिंग्स। YAML 1.1 में `yes`, `no`, `on`, `off` बूलियन के रूप में पार्स होते हैं — देश कोड ("NO" ट्रैप) और वर्ज़न स्ट्रिंग्स में यह आश्चर्यजनक है। मान को कोट करें: `country: "NO"`। js-yaml डिफ़ॉल्ट रूप से YAML 1.2 पर है जहाँ यह तय हुआ है, पर वास्तविक दुनिया के इनपुट अब भी प्रभावित होते हैं।
- बिना कोट के विशेष अक्षर। `- `, `:`, `?`, `&`, `*`, `!`, `|`, `>`, `\'`, `"`, `%`, `@`, `` ` `` से शुरू होने वाले मानों को कोट करना ज़रूरी है। सबसे सुरक्षित पैटर्न: विराम चिह्न वाले किसी भी स्ट्रिंग को कोट करें।
- अनसमाप्त कोट। गायब बंद होने वाले `"` या `\'` के कारण पार्सर बाकी फ़ाइल को अगले कोट तक स्ट्रिंग के हिस्से के रूप में मानता है — आमतौर पर वास्तविक गलती से दूर एक भ्रामक लाइन नंबर पैदा करता है।
- एंकर / एलियास बेमेल। अपरिभाषित एंकर (`&name`) का संदर्भ देने वाले एलियास (`*name`) पार्स त्रुटि उठाते हैं। जाँचें कि हर एलियास के लिए दस्तावेज़ में पहले एक मेल खाता एंकर घोषित है।
अक्सर पूछे जाने वाले प्रश्न
क्या यह "Norway problem" जैसी YAML 1.1 ख़ासियतों का समर्थन करता है?
नहीं — और यह जानबूझकर है। हम YAML 1.2 मोड में js-yaml का उपयोग करते हैं, जहाँ बिना कोट का `NO` बूलियन false के बजाय स्ट्रिंग "NO" के रूप में पार्स होता है। यदि आपके इनपुट YAML 1.1 बूलियन पर निर्भर हैं, उन्हें पेस्ट करने से पहले स्पष्ट रूप से कोट करें। एक टूल में दो स्पेसिफिकेशन मिलाने से डेटा का चुपचाप गलत अनुवाद हो सकता है।
YAML एंकर और एलियासेस का क्या होता है?
वे रूपांतरण के दौरान हल हो जाते हैं। परिणामी JSON में डुप्लीकेटेड मान सादे डेटा के रूप में होते हैं — एंकर JSON में जीवित नहीं रहते क्योंकि JSON में समतुल्य संदर्भ सिंटैक्स नहीं है। यदि आप संदर्भ संरक्षित चाहते हैं, तो JSON सही लक्षित प्रारूप नहीं है।
क्या मैं मल्टी-डॉक्यूमेंट YAML फ़ाइलें बदल सकता हूँ?
हाँ। `---` से अलग कई दस्तावेज़ों वाली YAML फ़ाइलें JSON ऐरे में बदलती हैं, जिसमें प्रत्येक दस्तावेज़ ऐरे का एक तत्व बनता है। यदि आपकी फ़ाइल एकल दस्तावेज़ है, तो यह शीर्ष स्तर पर एकल JSON ऑब्जेक्ट या मान में बदल जाती है।
मेरी तारीख स्ट्रिंग ISO प्रारूप में क्यों आती है?
YAML में नेटिव टाइमस्टैम्प प्रकार (`2025-12-31`) है। पार्सर इसे JavaScript Date के रूप में पढ़ता है, जो JSON के रूप में ISO 8601 स्ट्रिंग में सीरियलाइज़ होता है। मूल लिटरल पाठ रखने के लिए, अपने YAML में मान को कोट करें: `release: "2025-12-31"`।
क्या यह संवेदनशील YAML कॉन्फ़िग के लिए सुरक्षित है?
हाँ। सब कुछ आपके ब्राउज़र में चलता है — आपका इनपुट इस पेज के JavaScript द्वारा पार्स और कन्वर्ट होता है, किसी सर्वर को नहीं भेजा जाता। कोई लॉग नहीं, इनपुट पर कोई एनालिटिक्स नहीं, कोई रिटेंशन नहीं। ब्राउज़र डेव टूल्स में सत्यापित करें: Convert क्लिक करने पर कोई नेटवर्क रिक्वेस्ट नहीं चलती।
यह कितनी बड़ी YAML फ़ाइल संभाल सकता है?
आपकी ब्राउज़र मेमोरी सीमा तक, पर ~10 MB YAML के ऊपर टेक्स्ट एरिया UI सुस्त होने लगती है। बड़े इनपुट के लिए हिस्सों में बदलें या कमांड लाइन पर वही लाइब्रेरी (js-yaml) इस्तेमाल करें।