JSON को TOML में बदलें

यहाँ आप JSON को TOML में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।

  • कहाँ चलता है आपके ब्राउज़र में। फ़ाइल कभी अपलोड नहीं होती।
  • बिना नुक़सान कुछ नहीं छोड़ा जाता। JSON में जो था, TOML में ठीक वही रहता है।
  • फ़ाइल आकार की सीमा हर फ़ाइल 100 MB तक, मुफ़्त, बिना खाते के।

एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।

TOML क्या देता है जो JSON config फ़ाइल नहीं देती

JSON में कोई comment नहीं है। यह specification में लिखा है, कोई चूक नहीं, और यही वजह है JSON में लिखी ज़्यादातर configuration बनाए रखने में असुविधाजनक होती है। TOML, जो जनवरी 2021 में 1.0 पर पहुँचा और अब Cargo, pyproject.toml और Hugo की config फ़ॉर्मेट है, comments रखता है।

दूसरी वजह flatness है। तीन-level गहरी JSON config braces की तीन परतें हैं; TOML में वही चीज़ एक header line है — [server.tls.client] — और उसके नीचे keys की एक छोटी सूची।

JSON array को TOML फ़ाइल के शीर्ष पर कोई घर नहीं मिलता

TOML दस्तावेज़ एक table है। यह किसी array से शुरू नहीं हो सकता जैसा JSON दस्तावेज़ कर सकता है। रूपांतरण असफल होने की बजाय इसे संभालता है — जो value object नहीं है वह items नाम की key के भीतर लपेट दी जाती है।

फ़ाइल तब valid रहती है, और यह जवाब नहीं, placeholder है। कोई converter नहीं जान सकता कि फ़ाइल पढ़ने वाला टूल उस list को dependencies कहलाना चाहता है या servers।

JSON null का कोई TOML समकक्ष नहीं, इसलिए यह ग़ायब हो जाता है

यह हर बार जाँचने लायक़ विफलता है। TOML के पास कोई null literal नहीं है, और writer एक नहीं गढ़ता — जिस key का JSON value null था वह बस लिखी नहीं जाती। {"a": null} बदलिए तो आउटपुट ख़ाली फ़ाइल है।

यह मायने रखता है या नहीं यह पूरी तरह उस टूल पर निर्भर करता है जो नतीजा पढ़ेगा। कई config parser अनुपस्थित key और null key को एक जैसा मानते हैं — दोनों के लिए डिफ़ॉल्ट पर वापस जाते हैं।

JSON objects का array TOML tables का array बनता है

यह वह हिस्सा है जो अक्सर उन्हें चौंकाता है जो सोचते हैं TOML JSON से कमज़ोर फ़ॉर्मेट है। Records की सूची उसी table header को दोहराकर व्यक्त की जाती है — [[servers]] तीन बार लिखने से तीन servers मिलते हैं।

सदस्यों को एक जैसा मेल खाना ज़रूरी नहीं। पहला object जिसमें id और name है और दूसरा जो region जोड़ता है, बिना शिकायत के convert होता है, और TOML valid रहती है।

TOML आउटपुट आपकी keys क्यों reorder करता है

TOML table header उसके नीचे लिखी हर चीज़ का मालिक होता है जब तक अगला header न आए। तो [server] के बाद रखी सादी key server की मानी जाएगी। इसलिए writer हर शीर्ष scalar को पहले table header से ऊपर उठाता है।

आउटपुट इसलिए आपकी JSON के क्रम में नहीं है, और यह हो भी नहीं सकता। यह इकलौता reordering है जो अर्थ बचाता है; कोई और reordering किसी key को ग़लत table में डाल देगा।

गहरी nested JSON dotted TOML table headers बनाती है

JSON की चार levels एक ही header line बनती हैं — {"a":{"b":{"c":{"d":1}}}} [a.b.c] बनकर convert होता है, नीचे d = 1 के साथ। TOML गहराई header में व्यक्त करता है, indentation में नहीं।

इसकी एक सीमा भी है जो validity का नहीं, ruचि का सवाल है — [build.targets.linux.arm64.flags] जैसा header legal है और पढ़ने में कोई मज़ा नहीं। अगर बदली फ़ाइल में इतने लंबे headers हों, यह एक संकेत है।

TOML comments ही मक़सद हैं, और रूपांतरण उन्हें नहीं लिख सकता

आउटपुट में कोई comment नहीं है, क्योंकि input के पास रखने को कहीं जगह नहीं थी। यह converter की कमी नहीं — यही वजह है JSON रखना पहले सार्थक था।

जो इसे रूपांतरण के बाद पहले पाँच मिनट सबसे क़ीमती बनाता है। TOML फ़ाइल इस configuration के बारे में institutional knowledge रख सकती है — कौन-सी values बदलना सुरक्षित है, यह लिखने का यही एक पल है जो कुछ नहीं खर्चता।

Timestamps string रहती हैं, क्योंकि JSON के पास कभी date type नहीं था

TOML के पास चार date और time types हैं। JSON के पास कोई नहीं — RFC 8259 आपको strings, numbers, booleans, null, arrays और objects देता है, और हर timestamp पहले प्रकार का है।

तो "2024-01-01T00:00:00Z" जैसी JSON value quoted TOML string के रूप में लिखी जाती है, जो सही है और वह नहीं जो फ़ॉर्मेट व्यक्त कर सकता था। अगर पढ़ने वाले टूल को असली date-time चाहिए, उन लाइनों से हाथ से quotation marks हटा दीजिए।

Commit करने से पहले TOML वापस पढ़ना

सबसे सस्ती जाँच है round trip — TOML को वापस JSON में बदलिए और शुरुआती फ़ाइल से तुलना कीजिए। जिन keys में null था वे गायब होंगी और और कुछ अलग नहीं होना चाहिए।

दूसरी जाँच है टूल ख़ुद। Cargo, Hugo और ज़्यादातर Python packaging tools तुरंत बता देंगे कि दस्तावेज़ parse होता है या नहीं।

JSON को TOML में बदलने वाला रूपांतरण कहाँ चलता है

इसी ब्राउज़र टैब में, आपके अपने processor पर। कोई request फ़ाइल कहीं नहीं ले जाता, कोई अकाउंट नहीं, कोई कतार नहीं, और मुफ़्त तह 100 MB तक की फ़ाइलें स्वीकार करती है।

यह config के लिए सामान्य से ज़्यादा मायने रखता है। एक JSON configuration फ़ाइल ठीक वही चीज़ है जो internal hostnames, bucket names, service accounts रखती है।

JSON को TOML में ऐसे बदलें

  1. अपनी JSON फ़ाइल इस पेज पर छोड़ें, या चुनने के लिए दबाएँ।
  2. लक्ष्य के रूप में TOML चुनें। कन्वर्ज़न आपके ब्राउज़र में होता है और फ़ाइल अपलोड नहीं होती।
  3. तैयार TOML फ़ाइल डाउनलोड कर लें।

JSON या TOML: क्या बदलता है

JSON और TOML की तुलना
JSONTOML
पूरा नामJavaScript Object NotationTom's Obvious Minimal Language
फ़ाइल एक्सटेंशन.json.toml
मीडिया टाइपapplication/jsonapplication/toml
पहली बार प्रकाशित20012013
विनिर्देशRFC 8259TOML 1.0
लाइसेंसखुला मानकखुला मानक
आज की स्थितिमौजूदामौजूदा
ब्राउज़र में खुलता हैहर ब्राउज़रकोई ब्राउज़र नहीं
इसकी जगह विचारणीयXML, YAML, NDJSONYAML, INI

क्या बचा रहता है

कुछ नहीं खोता। JSON और TOML — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।

नतीजा खोलना

TOML को कोई भी ब्राउज़र नहीं पढ़ता। इस लिहाज़ से दोनों में यही कम जगह चलने वाला है। भेजने से पहले देख लीजिए कि पाने वाला इसे लेता भी है या नहीं।

Visual Studio Code JSON और TOML — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।

कौन-सा फ़ॉर्मेट किस काम के लिए है

दोनों का निशाना अलग काम है: JSON का प्रोग्रामों के बीच डेटा ले जाना और वेब पर, TOML का एडिटिंग पर। इस पर सोचना बनता है, क्योंकि जिस वजह से एक मौजूद है, आम तौर पर उसी वजह से दूसरा असुविधाजनक होता है।

JSON 2001 में आया। यह RFC 8259 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।

TOML 2013 से चला आ रहा है, और TOML 1.0 में तय किया गया है। Visual Studio Code इस फ़ॉर्मेट को पढ़ लेता है।

JSON से TOML: आम सवाल

क्या मेरी JSON फ़ाइल कहीं अपलोड होती है?

नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।

क्या JSON को TOML में बदलना मुफ़्त है?

हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।

JSON को TOML में बदलने पर क्या गुणवत्ता जाती है?

नहीं। TOML वही सामग्री बिना कुछ फेंके सँभालता है: नतीजा गुणवत्ता में असली फ़ाइल जैसा ही होता है।

क्या TOML फ़ाइल ब्राउज़र में खुलती है?

TOML को कोई भी ब्राउज़र नहीं पढ़ता। इस लिहाज़ से दोनों में यही कम जगह चलने वाला है। भेजने से पहले देख लीजिए कि पाने वाला इसे लेता भी है या नहीं।

क्या JSON से TOML बिना नुक़सान का है?

कुछ नहीं खोता। JSON और TOML — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।

इन फ़ॉर्मेट के बारे में और