onlinetools.dev

JSON ↔ YAML ↔ TOML कनवर्टर

JSON, YAML और TOML के बीच बदलिए, प्रारूप की स्वतः पहचान के साथ

स्थानीय रूप से चलता है
loading…
इस टूल के बारे में

JSON, YAML और TOML के बीच किसी भी दिशा में बदलिए। चिपकाते ही स्रोत प्रारूप अपने आप पहचान लिया जाता है — कोष्ठक JSON का संकेत देते हैं, कुंजी के बाद के कोलन YAML का, [तालिकाएँ] TOML का — और अस्पष्ट इनपुट के लिए मैनुअल विकल्प भी है। रूपांतरण असली पार्सिंग से होकर जाता है, इसलिए आउटपुट निश्चित रूप से वैध होता है, न कि पंक्ति-दर-पंक्ति पाठ-परिवर्तन।

हर प्रारूप की अपनी असली ताक़त है: API और मशीनी आदान-प्रदान के लिए JSON, मनुष्यों द्वारा संपादित कॉन्फ़िग के लिए YAML (Kubernetes, CI पाइपलाइन), अच्छी तरह टाइप की गई कॉन्फ़िग फ़ाइलों के लिए TOML (Cargo, pyproject)। इनके बीच हाथ से डेटा ले जाना इंडेंटेशन और उद्धरण-चिह्नों की ग़लतियों को न्योता देता है, जिन्हें यह रूपांतरण मिटा देता है।

कनवर्टर प्रारूपों की सीमाओं के बारे में ईमानदार है: TOML में शीर्ष स्तर पर सूचियाँ नहीं होतीं और null भी नहीं होता, और ऐसे दस्तावेज़ों को बदलते समय वह चुपचाप डेटा गिराने के बजाय कारण बता देता है।

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

क्या टिप्पणियाँ रूपांतरण में बच जाती हैं?
नहीं — JSON में टिप्पणी की वाक्य-रचना है ही नहीं, और रूपांतरण पार्स किए गए डेटा-ढाँचे से होकर जाता है, जो टिप्पणियाँ नहीं ढोता। YAML → JSON → YAML करने पर टिप्पणियाँ स्थायी रूप से चली जाती हैं; जहाँ टिप्पणियाँ मायने रखती हों, वहाँ मूल फ़ाइल सँभालकर रखिए।
मेरा YAML वाला “no” false क्यों बन गया?
YAML 1.1 yes/no/on/off को बूलियन मानता है, और देश-कोड NO प्रसिद्ध रूप से false बन जाता है। यहाँ का पार्सर YAML 1.2 का पालन करता है (केवल true/false), पर पुराने पार्सरों के लिए लिखी फ़ाइलें फिर भी चौंका सकती हैं। जो स्ट्रिंग बूलियन, संख्या या तिथि जैसी दिखें, उन्हें उद्धरण चिह्नों में रखिए।
मेरा JSON, TOML में क्यों नहीं बदलता?
TOML को शीर्ष स्तर पर एक तालिका (ऑब्जेक्ट) चाहिए — कोई सूची या अकेला मान TOML दस्तावेज़ नहीं हो सकता — और उसमें null भी नहीं होता। डेटा का ढाँचा बदलिए (सूची को किसी कुंजी में लपेटिए, null हटाइए या उन्हें कोई डिफ़ॉल्ट दीजिए) और यह बदल जाएगा।
क्या YAML, JSON का सुपरसेट है?
व्यावहारिक रूप से हाँ — YAML 1.2 लगभग सभी JSON दस्तावेज़ पार्स कर लेता है, इसीलिए YAML कॉन्फ़िग में JSON चिपकाना आमतौर पर चल जाता है। उलटा सच नहीं है: YAML के anchor, बहु-पंक्ति स्केलर और टैग का JSON में कोई समकक्ष नहीं है और रूपांतरण में वे खुल जाते हैं या स्ट्रिंग बन जाते हैं।
संबंधित टूल