TOML (Tom's Obvious Minimal Language) एक कॉन्फ़िगरेशन फ़ाइल फॉर्मेट है जिसे इंसानों के लिए बनाया गया है। यह स्पष्ट रूप से एक hash table से मैप होता है, नेस्टेड टेबल, टाइप्ड वैल्यू और इनलाइन कमेंट्स को सपोर्ट करता है। कई टूल्स और फ्रेमवर्क TOML को अपने प्राथमिक config फॉर्मेट के रूप में उपयोग करते हैं: Rust प्रोजेक्ट Cargo.toml पर निर्भर करते हैं, Python पैकेजिंग pyproject.toml का उपयोग करती है, और Hugo static sites config.toml के जरिए कॉन्फ़िगर होती हैं। TOML को JSON में ऑनलाइन कन्वर्ट करने से आप इन कॉन्फ़िगरेशन फ़ाइलों को ऐसे फॉर्मेट में बदल सकते हैं जिसे लगभग हर प्रोग्रामिंग भाषा, API और डेटा पाइपलाइन नेटिव रूप से consume कर सकती है।
JSON (JavaScript Object Notation), RFC 8259 द्वारा परिभाषित, सबसे व्यापक रूप से समर्थित डेटा इंटरचेंज फॉर्मेट है। जबकि TOML अपने minimal सिंटैक्स और कमेंट सपोर्ट के साथ मानव readability को प्राथमिकता देता है, JSON मशीन इंटरऑपरेबिलिटी को प्राथमिकता देता है। एक TOML to JSON converter TOML v1.0.0 स्पेसिफिकेशन के अनुसार TOML इनपुट को parse करके और एक संरचनात्मक रूप से समकक्ष JSON दस्तावेज़ बनाकर इस अंतर को पाटता है। कन्वर्ज़न सभी डेटा को preserve करता है: strings, integers, floats, booleans, arrays और tables सीधे अपने JSON समकक्षों से मैप होते हैं।
TOML में चार नेटिव date/time प्रकार हैं जिन्हें JSON सीधे represent नहीं कर सकता: offset date-times, local date-times, local dates और local times। JSON में कोई date प्रकार नहीं है, इसलिए कन्वर्ज़न के दौरान इन values को ISO 8601 strings के रूप में serialize किया जाता है।
TOML to JSON Converter क्यों उपयोग करें?
TOML में लिखी कॉन्फ़िगरेशन फ़ाइलों को अक्सर ऐसे सिस्टम में फीड करने की ज़रूरत होती है जो केवल JSON स्वीकार करते हैं। फ़ाइल को हाथ से दोबारा लिखने या स्थानीय रूप से parser library इंस्टॉल करने के बजाय, एक browser-based converter सेकंडों में यह transformation करता है।
🔒
प्राइवेसी-फर्स्ट प्रोसेसिंग
आपका TOML डेटा पूरी तरह ब्राउज़र में ही parse और convert होता है। कुछ भी सर्वर पर अपलोड नहीं होता, जिससे ऐसी कॉन्फ़िगरेशन फ़ाइलों को convert करना सुरक्षित है जिनमें API keys, डेटाबेस credentials या internal hostnames हों।
⚡
तत्काल कन्वर्ज़न
अपना TOML पेस्ट करें और तुरंत formatted JSON आउटपुट पाएं। एक बार के फॉर्मेट कन्वर्ज़न के लिए Node.js packages, Python libraries या CLI tools इंस्टॉल करने की कोई ज़रूरत नहीं।
🔀
पूर्ण TOML v1.0.0 सपोर्ट
Converter सभी TOML डेटा प्रकारों को handle करता है जिनमें dotted keys, inline tables, arrays of tables, multi-line strings और date-time values शामिल हैं। मैन्युअल कन्वर्ज़न में फंसने वाले edge cases को सही तरीके से handle किया जाता है।
📋
कोई अकाउंट आवश्यक नहीं
पेज खोलें, TOML पेस्ट करें और JSON result कॉपी करें। कोई sign-up नहीं, कोई rate limit नहीं और कोई usage tracking नहीं। टूल हर बार visit करने पर एक ही तरह काम करता है।
TOML to JSON के उपयोग के मामले
Frontend Development
Rust WASM प्रोजेक्ट के Cargo.toml metadata को JavaScript build script या package.json generation step द्वारा उपयोग के लिए JSON में convert करें।
Backend Engineering
TOML में लिखे application config को JSON में transform करें ताकि उन environments में inject किया जा सके जिन्हें JSON config की आवश्यकता है, जैसे AWS Lambda environment variables या Docker container labels।
DevOps और CI/CD
GitHub Actions और GitLab CI जैसे pipeline tools अक्सर JSON inputs के साथ काम करते हैं। TOML-based tool configurations (rustfmt.toml, taplo.toml) को linting या validation steps के लिए JSON में convert करें।
QA और Testing
TOML source files से JSON test fixtures generate करें। TOML को comment सपोर्ट और readable सिंटैक्स की वजह से test data source के रूप में maintain करना आसान है, लेकिन test harnesses अक्सर JSON इनपुट की उम्मीद करते हैं।
Data Engineering
सिस्टम के बीच configuration migrate करते समय, एक platform (जैसे InfluxDB, Telegraf) की TOML फ़ाइलों को किसी अन्य platform के API या import tool के लिए JSON documents बनाने की ज़रूरत पड़ सकती है।
सीखना और शिक्षा
डेटा फॉर्मेट सीखने वाले छात्र TOML examples पेस्ट करके देख सकते हैं कि tables नेस्टेड objects कैसे बनते हैं, arrays of tables JSON arrays कैसे बनते हैं, और TOML के date types strings से कैसे मैप होते हैं।
TOML to JSON टाइप मैपिंग संदर्भ
हर TOML प्रकार का एक प्रत्यक्ष JSON समकक्ष है, एक अपवाद के साथ: date और time values। नीचे दी गई तालिका दिखाती है कि प्रत्येक TOML प्रकार JSON में कैसे convert होता है। यह मैपिंग TOML v1.0.0 स्पेसिफिकेशन का पालन करती है और tomllib (Python), toml-rs (Rust) और @iarna/toml (Node.js) जैसे standard parsers के व्यवहार से मेल खाती है।
प्रकार
TOML सिंटैक्स
JSON आउटपुट
String
"value"
"value"
Integer
42
42
Float
3.14
3.14
Boolean
true / false
true / false
Offset Date-Time
1979-05-27T07:32:00Z
"1979-05-27T07:32:00Z"
Local Date-Time
1979-05-27T07:32:00
"1979-05-27T07:32:00"
Local Date
1979-05-27
"1979-05-27"
Local Time
07:32:00
"07:32:00"
Array
[1, 2, 3]
[1, 2, 3]
Table
[section]
{ "section": {} }
Inline Table
{ key = "val" }
{ "key": "val" }
Array of Tables
[[items]]
"items": [{}]
TOML integers readability के लिए underscores सपोर्ट करते हैं (जैसे 1_000_000) और hexadecimal (0xDEADBEEF), octal (0o755) और binary (0b11010110) literals भी। ये सभी JSON में plain decimal numbers में convert होते हैं। TOML infinity और NaN float values भी सपोर्ट करता है, लेकिन इनका JSON में कोई representation नहीं है और strict mode में ये conversion error का कारण बनेंगे।
कोड उदाहरण
चार भाषाओं में TOML to JSON conversion के व्यावहारिक उदाहरण। प्रत्येक एक TOML फ़ाइल पढ़ता है, उसे parse करता है और formatted JSON आउटपुट करता है।
import tomllib # Python 3.11+ (standard library)
import json
with open('config.toml', 'rb') as f:
data = tomllib.load(f)
print(json.dumps(data, indent=2, default=str))
# Dates become strings: "1979-05-27"
# Arrays of tables become JSON arrays of objects
Go
package main
import (
"encoding/json"
"fmt"
"os"
"github.com/BurntSushi/toml"
)
func main() {
var data map[string]any
_, err := toml.DecodeFile("config.toml", &data)
if err != nil {
panic(err)
}
out, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(out))
}
TOML comments (# से शुरू होने वाली lines) कन्वर्ज़न के दौरान हटा दिए जाते हैं। JSON comments सपोर्ट नहीं करता, इसलिए उन्हें आउटपुट में preserve करने का कोई तरीका नहीं है। यदि आपको comments बनाए रखने हैं, तो JSONC (JSON with Comments) को अपने target फॉर्मेट के रूप में उपयोग करने पर विचार करें।
क्या TOML to JSON कन्वर्ज़न में डेटा नष्ट हो सकता है?
मानक TOML दस्तावेज़ों के लिए कोई डेटा नहीं खोता। सभी strings, numbers, booleans, arrays और tables के प्रत्यक्ष JSON समकक्ष हैं। केवल date और time values परिवर्तित होती हैं, जो JSON में ISO 8601 strings बन जाती हैं। दो edge cases समस्या पैदा कर सकते हैं: TOML infinity और NaN floats सपोर्ट करता है जिनका JSON में कोई representation नहीं है, और बहुत बड़े integers JSON parser precision limits (JavaScript में 2^53 - 1) से अधिक हो सकते हैं।
TOML arrays of tables JSON में कैसे represent होते हैं?
TOML का [[double-bracket]] सिंटैक्स tables की एक array परिभाषित करता है। प्रत्येक [[section]] block एक JSON array में एक नया object जोड़ता है। उदाहरण के लिए, दो [[fruits]] blocks एक JSON array बनाते हैं जिसमें दो objects हैं: "fruits": [{...}, {...}]। Double-bracket सिंटैक्स TOML में पहली बार देखने पर सबसे confusing चीज़ों में से एक है; JSON आउटपुट संरचना को स्पष्ट करता है।
क्या कन्वर्ज़न reversible है? क्या मैं JSON से TOML में वापस जा सकता हूँ?
संरचनात्मक रूप से, हाँ। किसी भी JSON object को TOML table के रूप में represent किया जा सकता है, और JSON arrays TOML arrays से मैप होते हैं। हालांकि, TOML-specific features जैसे comments, dotted key grouping और inline table formatting शुरुआती TOML-to-JSON कन्वर्ज़न के दौरान खो जाती हैं और recover नहीं की जा सकतीं। Round-trip valid लेकिन शायद कम readable TOML generate करेगा।
कॉन्फ़िगरेशन फ़ाइलों के लिए TOML और JSON में क्या अंतर है?
TOML को कॉन्फ़िगरेशन के लिए डिज़ाइन किया गया था: यह comments सपोर्ट करता है, नेस्टेड संरचनाओं के लिए अधिक readable सिंटैक्स है, integers और floats में अंतर करता है, और नेटिव date/time प्रकार शामिल हैं। JSON को programs के बीच डेटा interchange के लिए डिज़ाइन किया गया था। JSON को tools और APIs द्वारा अधिक व्यापक रूप से सपोर्ट किया जाता है, लेकिन TOML को मनुष्यों के लिए read और edit करना आसान है। कई projects source configuration के लिए TOML और deployment के लिए JSON में convert करते हैं।
यह टूल server.host जैसे dotted keys को कैसे handle करता है?
TOML में dotted keys (जैसे server.host = "localhost") JSON में नेस्टेड objects बनाते हैं: {"server": {"host": "localhost"}}। यह host key के साथ [server] table परिभाषित करने के equivalent है। Converter automatically dotted keys को उनकी पूरी नेस्टेड structure में resolve करता है।
मेरी TOML फ़ाइल convert क्यों नहीं हो रही?
सामान्य कारणों में शामिल हैं: string values के आसपास quotes न होना (TOML इन्हें आवश्यक मानता है), multi-line basic strings के अंदर indentation के लिए tabs का उपयोग, duplicate key definitions, और एक ही path के लिए dotted keys को explicit table headers के साथ mix करना। Converter parser error message को line number के साथ display करता है ताकि आप समस्या का पता लगा सकें।