आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप JSON को INI में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
JSON से INI
यही पूरा वाक्य पूरा रूपांतरण है। INI फ़ाइल sections की सूची है, हर एक flat key-value लाइनें रखते हुए, और section के भीतर section की कोई सुविधा नहीं। इसका कोई specification नहीं — यह 1985 से है।
JSON बिना किसी सीमा के nest करता है। तो रूपांतरण को एक tree को दो levels पर projection करना है, और असली सवाल यह नहीं कि यह काम करता है या नहीं, बल्कि यह कि तीसरे level और उससे नीचे के साथ क्या होता है।
हर वह ऊपरी key जिसका value object है, section बनती है — server, logging और database objects रखने वाली JSON फ़ाइल [server], [logging] और [database] बनाती है। जो settings किसी इंसान ने पहले लिखी थीं, उनके लिए यह अक्सर एक सटीक मेल है।
सादा value रखने वाली ऊपरी keys पहले section header से पहले लिखी जाती हैं, बाद में नहीं। यह style का चुनाव नहीं — कोई INI section उसके बाद हर लाइन का मालिक होता है जब तक अगला header न आए।
तीसरा nesting level dotted key बनकर लिखा जाता है। अगर server में tls object हो जिसमें cert path हो, आउटपुट [server] section बनकर उसके नीचे tls.cert line रखता है।
कुछ parsers इस परंपरा को समझते हैं और nesting दोबारा बनाते हैं; ज़्यादातर नहीं समझते। कोई भी setting पढ़ने के लिए दोनों तरीक़े ठीक हैं। जो यह नहीं है वह round-trippable होना — dot रखने वाली असली JSON key nesting के एक level से अलग नहीं की जा सकती।
Key बचती है, value नहीं — null equals sign के बाद कुछ भी नहीं लिखता। यह unset value के सबसे नज़दीक है जो INI के पास है, क्योंकि फ़ॉर्मेट के पास न null है, न इसे व्यक्त करने का कोई तरीक़ा।
आपका parser इससे क्या करता है यह अलग-अलग होता है, और दस सेकंड में जान लेना बेहतर है। Python configparser इसे ख़ाली string लौटाता है। कुछ readers key पूरी तरह छोड़ देते हैं।
INI के पास कोई list नहीं। तीन allowed hosts वाला array 0, 1 और 2 keyed तीन लाइनें बनता है, जो हर value रखता है पर लगभग किसी parser convention से नहीं मिलता।
यह वह हिस्सा है जिसे INI बनने के बाद बदलने की बजाय JSON में पहले बदलना बेहतर है। Array को एक string में जोड़ दीजिए जिस separator को application उम्मीद करता है, फिर बदलिए।
शीर्ष-level वाला JSON array array positions के नाम पर sections बनाता है — [0], [1], [2], हर एक record की keys रखते हुए। फ़ाइल syntax के हिसाब से valid INI है और इसे पढ़ने वाला कोई समझदार program नहीं होगा।
यह आउटपुट विफलता नहीं, संकेत है। INI एक configuration फ़ॉर्मेट है — एक application के लिए named settings का सेट — और records की सूची डेटा है। CSV या स्प्रेडशीट लक्ष्य है अगर कोई इंसान इसे पढ़ेगा।
लगभग हर value वैसे ही लिखी जाती है — path, hostname, port, flag — जिससे फ़ाइल हाथ से टाइप की गई जैसी दिखती है। तीन प्रकार की values ऐसी नहीं हैं — जिसमें line break हो, जो पहले से quote से शुरू और ख़त्म होती हो।
यह escape हाल का है और एक असली दोष की जगह लेता है — अगस्त 2026 से पहले newline वाली JSON string सीधे लाइन break के रूप में लिखी जाती थी, जिससे अगला section अनजाने में बन सकता था।
INI हर चीज़ को टेक्स्ट के रूप में स्टोर करता है। JSON का true, true लिखा जाता है, JSON का 8080, 8080, और आगे इनका मतलब वही तय करता है जो फ़ाइल पढ़ता है।
अंदाज़ा किस दिशा में जाता है यह जानना ज़रूरी है इससे पहले किसी value पर भरोसा करें। लीडिंग zeros वाला version string नंबर मान लिए जाने पर वे zeros खो देता है।
आउटपुट में कोई comment नहीं है, क्योंकि JSON के पास कोई देने को नहीं था। INI comments सँभालता है — semicolon या hash से शुरू होने वाली लाइन — और यह converter दोनों को दूसरी दिशा में पढ़ते वक़्त मानता है।
चूँकि settings को INI में ले जाने का मक़सद ही अक्सर यह है कि कोई इंसान उन्हें edit करेगा, comment लाइनें तुरंत जोड़ने लायक़ हैं — कौन-सी values environment-specific हैं।
यह सादा JavaScript है इसी ब्राउज़र टैब में। फ़ाइल अपलोड नहीं होती, कोई अकाउंट या कतार नहीं, और मुफ़्त तह 100 MB तक स्वीकार करती है।
Privacy बात यहाँ सजावट नहीं है। Settings फ़ाइल database connection strings, API endpoints, internal hostnames रखती है — और, कोई भी माने या नहीं, कभी-कभी एक password जो environment variable होना चाहिए था।
| JSON | INI | |
|---|---|---|
| पूरा नाम | JavaScript Object Notation | INI कॉन्फ़िगरेशन |
| फ़ाइल एक्सटेंशन | .json | .ini, .cfg, .conf |
| मीडिया टाइप | application/json | text/plain |
| पहली बार प्रकाशित | 2001 | 1985 |
| विनिर्देश | RFC 8259 | — |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | पुराना, फिर भी हर जगह पढ़ा जाता है |
| ब्राउज़र में खुलता है | हर ब्राउज़र | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | XML, YAML, NDJSON | TOML, YAML |
INI को कोई भी ब्राउज़र नहीं पढ़ता। इस लिहाज़ से दोनों में यही कम जगह चलने वाला है। भेजने से पहले देख लीजिए कि पाने वाला इसे लेता भी है या नहीं।
Visual Studio Code JSON और INI — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
दोनों का निशाना अलग काम है: JSON का प्रोग्रामों के बीच डेटा ले जाना और वेब पर, INI का एडिटिंग पर। इस पर सोचना बनता है, क्योंकि जिस वजह से एक मौजूद है, आम तौर पर उसी वजह से दूसरा असुविधाजनक होता है।
JSON 2001 में आया। यह RFC 8259 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
INI 1985 से चला आ रहा है। Notepad और Visual Studio Code इस फ़ॉर्मेट को पढ़ लेते है।
INI 1985 में आया और JSON 2001 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
JSON और INI सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। INI में एक के अंदर एक होता ही नहीं। एक स्तर से गहरी संरचनाएँ चपटी होकर बिंदु वाली कुंजियाँ बन जाती हैं।
INI को कोई भी ब्राउज़र नहीं पढ़ता। इस लिहाज़ से दोनों में यही कम जगह चलने वाला है। भेजने से पहले देख लीजिए कि पाने वाला इसे लेता भी है या नहीं।