कॉन्फ़िगर करने योग्य इंडेंटेशन और प्रीटी-प्रिंट टॉगल के साथ JSON दस्तावेज़ों को TOML में बदलें।
कॉन्फ़िगर करने योग्य इंडेंटेशन और प्रीटी-प्रिंट टॉगल के साथ JSON दस्तावेज़ों को TOML में बदलें। कॉन्फ़िगर करने योग्य इंडेंटेशन और प्रीटी-प्रिंट टॉगल के साथ JSON दस्तावेज़ों को TOML में बदलें।
आउटपुट
पृष्ठभूमि
JSON को TOML में क्यों बदलें
JSON तार पर हर जगह है, लेकिन TOML वह प्रारूप है जिसका उपयोग अधिकांश
आधुनिक कॉन्फ़िग फ़ाइलें वास्तव में करती हैं (Cargo, pyproject.toml, GitHub Actions,
uv, और कई और)। जब आप किसी API से JSON स्निपेट को किसी कॉन्फ़िग
फ़ाइल में कॉपी करते हैं, तो आपको आमतौर पर सिंटैक्स का अनुवाद खुद हाथ से करना पड़ता है:
ब्रेस सेक्शन बन जाते हैं, ब्रैकेट सरणियाँ बन जाते हैं, कॉमा
न्यूलाइन बन जाते हैं, और कोटेड कुंजियाँ बेयर कुंजियाँ बन जाती हैं।
एक कन्वर्टर वह अनुवाद स्वचालित कर देता है ताकि आप API
प्रतिक्रिया पेस्ट कर सकें, TOML आउटपुट कॉपी कर सकें, और काम हो जाए।
जानने योग्य विशेषताएँ
अधिकांश कन्वर्टर डिफ़ॉल्ट रूप से JSON ऑब्जेक्ट क्रम को संरक्षित करते हैं। TOML
आपको सेक्शन पुनः क्रमबद्ध करने की अनुमति देता है, इसलिए जब आप
रन के बीच एक स्थिर diff चाहते हैं तो "कुंजियाँ क्रमबद्ध करें" विकल्प मदद करता है। इंडेंटेशन नियंत्रण आपको
प्रोजेक्ट की शैली गाइड से मेल खाने देता है (दो या चार स्पेस)।
TOML में टेबल की सरणियों के लिए, कन्वर्टर इनलाइन रूप
key = [ ... ] उत्सर्जित करता है जब JSON सरणी में एक ही समान
ऑब्जेक्ट हो, और एक हेडर रूप [[section]] उन सूचियों के लिए जो प्रकार
मिलाती हैं या समान स्कीमा दोहराती हैं। यही एकमात्र मामला है जहाँ
रूपांतरण पूरी तरह यांत्रिक नहीं है।
कार्यप्रवाह सुझाव
TOML कमिट करने से पहले, दोबारा जाँच लें कि JSON में जिन कुंजियों का
आपने उपयोग किया वे वैध TOML बेयर कुंजियाँ हैं (कोई स्पेस नहीं, कोई अग्रणी अंक
नहीं, शुरुआत में कोई डैश नहीं)। कन्वर्टर नामों को यथावत रखता है;
वह उन्हें पुनः नाम नहीं देता। रूपांतरण के बाद, अपने एडिटर में
पेस्ट करें और कन्वर्टर जिन शैली समस्याओं से अनजान है उन्हें पकड़ने के लिए
अपने प्रोजेक्ट का लिंटर चलाएँ।
व्यावहारिक उदाहरण
कल्पना करें कि आपके पास एक API प्रतिक्रिया है जो आपके प्रोजेक्ट के फ़ीचर फ़्लैग सूचीबद्ध करती है और आप उन्हें सीधे एक pyproject.toml ब्लॉक में पेस्ट करना चाहते हैं। JSON इस तरह दिखता है { "name": "beetools", "features": ["json", "toml"] }। रूपांतरण के बाद TOML name = "beetools" और features = ["json", "toml"] पढ़ता है, और आप इसे बिना आगे के संपादन के [tool.beetools] में डाल सकते हैं। टेबल की सरणियाँ ([[items]]) उन JSON सरणियों से आती हैं जिनके तत्व समान कुंजियों वाले ऑब्जेक्ट होते हैं; कन्वर्टर समरूप आकार का पता लगाता है और मल्टी-लाइन रूप स्वचालित रूप से उत्सर्जित करता है। यदि आपको इसके बजाय एक सपाट आउटपुट दिखे, तो इनपुट ने प्रकार मिला दिए -- स्रोत को मैन्युअल रूप से विभाजित करें और फिर चलाएँ।
अक्सर पूछे जाने वाले प्रश्न
क्या कन्वर्टर नेस्टेड ऑब्जेक्ट का समर्थन करता है?
हाँ। नेस्टेड JSON ऑब्जेक्ट नेस्टेड TOML टेबल बन जाते हैं। कन्वर्टर गहराई संरक्षित करता है, और बहुत गहरा नेस्टिंग `[[section.sub]]` हेडर में संबंधित रूप से फैलता है।
प्रिमिटिव की सरणियों का क्या?
प्रिमिटिव (संख्याएँ, स्ट्रिंग, बूलियन) की सरणियाँ TOML इनलाइन सरणियाँ बन जाती हैं। मिश्रित प्रकार की सरणियाँ अंतर्निहित पार्सर द्वारा अस्वीकार कर दी जाती हैं क्योंकि TOML को सरणियों के समरूप होने की आवश्यकता होती है।
क्या JSON null मान संरक्षित रहते हैं?
TOML में कोई null लिटरल नहीं है। कन्वर्टर `null` मान हटा देता है और एक चेतावनी जारी करता है; यदि आपको अनुपस्थिति दर्ज करने की आवश्यकता है, तो रूपांतरण से पहले एक खाली स्ट्रिंग या सेंटिनल मान में स्विच करें।
आउटपुट में मूल JSON की टिप्पणियाँ क्यों गायब हैं?
JSON टिप्पणियों का समर्थन नहीं करता। यदि आपको TOML में टिप्पणियाँ चाहिए, तो रूपांतरण के बाद उन्हें हाथ से जोड़ें।
क्या कन्वर्टर कुंजियों का क्रम बदलेगा?
नहीं। डिफ़ॉल्ट रूप से कुंजियाँ JSON क्रम में उत्सर्जित होती हैं। यदि आप diff के लिए एक स्थिर, वर्णानुक्रमिक लेआउट चाहते हैं तो क्रमबद्ध विकल्प सक्षम करें।
क्या मेरा JSON कहीं भेजा जाता है?
नहीं। रूपांतरण पूरी तरह आपके ब्राउज़र में नेटिव JSON.parse और बंडल smol-toml लाइब्रेरी का उपयोग करके होता है।