JSON से TOML कन्वर्टर
बाईं ओर JSON ऑब्जेक्ट पेस्ट करें, दाईं ओर TOML पाएं। @iarna/toml के साथ कड़ी स्पेक का पालन। कोई अपलोड नहीं।
- बाएँ टेक्स्ट एरिया में JSON ऑब्जेक्ट पेस्ट करें।
- "TOML में बदलें" पर क्लिक करें। टॉप-लेवल JSON ऑब्जेक्ट होना चाहिए — ऐरे नहीं।
- TOML आउटपुट कॉपी करें या डाउनलोड करें।
- रिकॉर्ड्स की सूची के लिए, पहले `{ items: [...] }` के साथ रैप करें — यह TOML टेबल ऐरे बन जाता है।
यह क्या करता है?
@iarna/toml के माध्यम से JSON ऑब्जेक्ट को TOML 1.0-अनुपालन दस्तावेज़ में बदलता है। नेस्टेड ऑब्जेक्ट `[section]` हेडर बनते हैं; ऑब्जेक्ट के ऐरे `[[items]]` ऐरे-ऑफ़-टेबल्स ब्लॉक बनते हैं; स्ट्रिंग, संख्या, बूलियन और ISO 8601 डेटटाइम स्ट्रिंग्स TOML प्रिमिटिव्स में मैप होते हैं। आउटपुट को कैनोनिकल क्रम में सॉर्ट किया जाता है — सख़्त TOML पार्सर के साथ संगतता के लिए कुंजियाँ सब-टेबल्स से पहले आती हैं।
उदाहरण
JSON इनपुट:
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} TOML आउटपुट:
name = "Ada"
active = true
[address]
city = "London" सामान्य JSON-से-TOML समस्याएँ
TOML के टॉप-लेवल नियम JSON से सख़्त हैं। नीचे के पैटर्न समझाते हैं कि कोई JSON मान जो "काम करना चाहिए" क्यों विफल हो सकता है।
- टॉप-लेवल ऐरे। TOML टॉप-लेवल JSON ऐरे का प्रतिनिधित्व नहीं कर सकता। इसे रैप करें: `{"items": [...]}`। परिणाम `[[items]]` के तहत TOML ऐरे-ऑफ़-टेबल्स बन जाता है।
- टॉप-लेवल स्केलर। खुला `42` या `"hello"` JSON दस्तावेज़ TOML में जोड़ने के लिए कोई कुंजी नहीं रखता। इसे एक ऑब्जेक्ट में रैप करें: `{"value": 42}`।
- null मान। TOML में null प्रकार नहीं है। सीरियलाइज़र उन कुंजियों को पूरी तरह छोड़ देता है जिनका JSON मान null है। यदि "स्पष्ट रूप से कुछ नहीं" का प्रतिनिधित्व करना है, तो खाली स्ट्रिंग `""` या एक सेंटिनल मान का उपयोग करें, जो आपके डाउनस्ट्रीम कोड पर निर्भर करता है।
- मिश्रित-प्रकार ऐरे। TOML 1.0 `[1, "two"]` की अनुमति देता है, लेकिन विरासत 0.5 पार्सर नहीं। यदि आपका TOML 0.5 टूलिंग के माध्यम से राउंड-ट्रिप करना चाहिए, तो बदलने से पहले JSON में ऐरे को एकसमान रखें।
- TOML आउटपुट में डॉट्स वाली कुंजियाँ। `"my.key"` जैसी JSON कुंजी TOML "डॉटेड कुंजी" पथ बन जाती है, जिसे TOML पार्सर नेस्टेड के रूप में व्याख्या करेंगे। कुंजी नाम में लिटरल डॉट संरक्षित करने के लिए, सीरियलाइज़र इसे कोट करता है: `"my.key" = ...` — पर उपभोक्ता फिर भी इसे पथ के रूप में पार्स कर सकते हैं।
- NaN / Infinity। TOML 1.0 `nan`, `inf`, `-inf` लिटरल का समर्थन करता है। JSON इन्हें प्रतिनिधित्व नहीं करता — वे आमतौर पर स्ट्रिंग्स `"NaN"`, `"Infinity"` आदि के रूप में आते हैं। यदि आपको सच्चे TOML फ़्लोट विशेष चाहिए तो मैन्युअल रूप से बदलें।
अक्सर पूछे जाने वाले प्रश्न
तारीखें कैसे दर्शाई जाती हैं?
JSON तारीखें ISO 8601 स्ट्रिंग होती हैं, जैसे `"2026-04-26T12:00:00Z"`। सीरियलाइज़र उन्हें TOML में स्ट्रिंग के रूप में रखता है — नेटिव डेटटाइम प्रकार के रूप में नहीं। नेटिव TOML डेटटाइम पाने के लिए, आपको JavaScript साइड पर सही प्रकार मार्कर के साथ मान को प्री-प्रोसेस और एमिट करना होगा।
क्या गहरे नेस्टेड ऑब्जेक्ट चपटे किए जाते हैं?
नहीं — वे नेस्टेड `[a.b.c]` हेडर बन जाते हैं। प्रत्येक नेस्टिंग स्तर डॉट-जॉइन हेडर पथ बन जाता है। बहुत गहरी संरचनाओं के लिए, आउटपुट में लंबी हेडर लाइनें हो सकती हैं; यह बस TOML द्वारा गहराई व्यक्त करने का तरीका है।
क्या कुंजी क्रम सुरक्षित रहेगा?
अधिकांशतः। सीरियलाइज़र क्रम को कैनोनिकलाइज़ करता है ताकि प्रिमिटिव्स सब-टेबल्स से पहले आएँ (एक TOML नियम)। प्रत्येक टियर के भीतर, JSON इन्सर्शन क्रम सुरक्षित है।
मुझे आउटपुट पर TOML इनलाइन टेबल कैसे मिले?
आप नहीं ले सकते — सीरियलाइज़र हमेशा `[section]` ब्लॉक हेडर का उपयोग करता है, कभी इनलाइन टेबल नहीं। यदि आपको इनलाइन आउटपुट चाहिए, परिणाम को पोस्ट-प्रोसेस करें। इनलाइन टेबल TOML की पठनीयता विशेषता हैं, अलग डेटा आकार नहीं।
क्या मेरा JSON अपलोड होता है?
नहीं। सब कुछ आपके ब्राउज़र में चलता है — आपका इनपुट इस पेज के JavaScript द्वारा पार्स और सीरियलाइज़ होता है और कभी किसी सर्वर पर नहीं भेजा जाता।
क्या मैं JSON → TOML → JSON राउंड-ट्रिप कर सकता हूँ?
समर्थित प्रकारों (स्ट्रिंग, संख्या, बूलियन, नेस्टेड ऑब्जेक्ट, ऑब्जेक्ट का ऐरे) के लिए, हाँ। राउंड-ट्रिप null मान खो देते हैं (TOML में null नहीं है) और कुंजी क्रम को सामान्य कर सकते हैं।