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

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

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

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

हर सेक्शन एक नेस्टेड ऑब्जेक्ट बनता है

नतीजा एक ही बाहरी ऑब्जेक्ट है। हर सेक्शन हेडर अपनी एक कुंजी बनता है, जिसके भीतर उस सेक्शन की सारी keys-values एक अलग ऑब्जेक्ट की तरह बैठती हैं। किसी सेक्शन हेडर से पहले लिखी गई keys शीर्ष स्तर पर सीधे बैठती हैं, किसी अलग रैपर के भीतर नहीं।

यही पूरा ढाँचागत बदलाव है, क्योंकि INI फ़ाइल में इसके अलावा बदलने को कुछ बचता ही नहीं। असली दिलचस्पी ढाँचे में नहीं, मानों में है — वे इतनी सीधी तरह पार नहीं होते।

मान अपने आप टाइप हो जाते हैं

बराबर के चिह्न के बाद जो भी लिखा है, वह INI में सिर्फ़ अक्षर हैं — यहाँ का पाठक true और false को बूलियन बनाता है, संख्या जैसी दिखने वाली हर चीज़ को JSON संख्या, और बाक़ी सबको स्ट्रिंग रहने देता है।

ज़्यादातर सेटिंग के लिए यह सही फ़ैसला है: पोर्ट 8080 सीधे संख्या बनकर आता है, "8080" स्ट्रिंग नहीं। दिक़्क़त वहाँ है जहाँ अंक कोई पहचानकर्ता है, कोई मात्रा नहीं।

शून्य से शुरू होने वाला मान अपना शून्य खो देता है

007 लिखा हुआ मान संख्या 7 बन जाता है। फ़ाइल मोड की तरह लिखा गया 0755 संख्या 755 बन जाता है — यह एक अलग मोड है और वैसे ही लागू भी होगा।

यह चुपचाप होता है, कोई चेतावनी नहीं आती। अगर किसी कुंजी में पहचानकर्ता या सीरियल नंबर है, तो नतीजे में वह कुंजी बदलाव से पहले ही जाँच लेनी चाहिए।

हेक्साडेसिमल मान भी संख्या में बदल जाता है

0x1F लिखा गया मान संख्या 31 बनकर निकलता है — मान में सही, पर हर उस लॉग लाइन में ग़लत जो उसे वापस छापती है और हेक्साडेसिमल रूप की उम्मीद रखती है।

यह उसी नियम का नतीजा है जो 007 और 0755 के साथ होता है: पाठक के लिए हर संख्या-जैसी चीज़ एक जैसी है, चाहे वह किसी और आधार में लिखी गई हो।

On और Off को बूलियन नहीं माना जाता

Windows की INI फ़ाइलें और php.ini अक्सर true और false की जगह On और Off इस्तेमाल करते हैं, और यहाँ का पाठक उन्हें बूलियन नहीं मानता — वे स्ट्रिंग "On" और "Off" बनकर ही निकलते हैं।

यही yes और no पर भी लागू होता है, और फ़्लैग की तरह इस्तेमाल हुए 1 और 0 संख्या ही बनते हैं, बूलियन नहीं। किसे सच माना जाए, यह तय करना उसी कोड का काम है जो JSON को आगे पढ़ता है।

संख्या जैसी कुंजियाँ क्रम बदल देती हैं

कुंजियों का क्रम लगभग हर जगह बचा रहता है, सिवाय एक अपवाद के: पूर्णांक जैसी कुंजियाँ JavaScript ऑब्जेक्ट में हमेशा आगे और चढ़ते क्रम में आती हैं। तो 10, 2, name के क्रम में लिखा सेक्शन यहाँ 2, 10, name बनकर निकलता है।

सर्वर सूची या क्रम में लगे नियमों जैसी फ़ाइलें, जो संख्याओं को कुंजी की तरह इस्तेमाल करती हैं, इसी वजह से फिर से क्रमबद्ध होकर आती हैं। जहाँ क्रम का मतलब है, वहाँ वह सेक्शन JSON ऐरे होना चाहता है, ऑब्जेक्ट नहीं।

टिप्पणियाँ हमेशा छूट जाती हैं

सेमीकोलन या हैश से शुरू होने वाली पंक्तियाँ पढ़ते समय ही छोड़ दी जाती हैं, और JSON में उन्हें लिखने के लिए कोई जगह भी नहीं है — RFC 8259 किसी टिप्पणी वाक्य-रचना को परिभाषित ही नहीं करता।

किसी सेटिंग्स फ़ाइल में अक्सर यही सबसे बड़ा नुक़सान होता है। यह बताने वाली पंक्ति कि कोई मान किसी ख़ास ग्राहक के लिए क्यों बदला गया था, वह पार नहीं होती — मूल INI फ़ाइल को वर्ज़न कंट्रोल में साथ रखना ही सही तरीक़ा है।

दोहराए गए सेक्शन बिना किसी चेतावनी के ग़ायब हो जाते हैं

INI का कोई एक तय मानक नहीं है, इसलिए दोहराए गए सेक्शन हेडर को लेकर हर लाइब्रेरी अपने हिसाब से चलती है। यहाँ का पाठक हर बार हेडर मिलने पर एक नया ख़ाली सेक्शन शुरू करता है, तो दो बार आए [logging] में से सिर्फ़ दूसरे की keys बचती हैं।

यह पैटर्न अक्सर तब दिखता है जब कॉन्फ़िग कई फ़ाइलों को जोड़कर बनाई जाती है — एक बेस फ़ाइल और उसके ऊपर जोड़ी गई एक environment फ़ाइल। बदलाव से पहले स्रोत में दोहराए गए हेडर खोज लेना ही बचाव है।

फ़ाइल ब्राउज़र में ही पढ़ी और लिखी जाती है

INI पढ़ना और JSON लिखना, दोनों इसी पेज पर चलने वाला सादा जावास्क्रिप्ट है, कहीं अपलोड नहीं होता। यह इस जोड़ी के लिए ख़ास मायने रखता है, क्योंकि INI फ़ाइलें अक्सर डेटाबेस पासवर्ड और API कुंजियाँ रखती हैं।

मुफ़्त स्तर 100 MB तक स्वीकार करता है, जो किसी कॉन्फ़िग फ़ाइल के लिए कहीं ज़्यादा है। असली सीमा आकार नहीं, समीक्षा है — JSON बनने के बाद संख्या वाली हर कुंजी एक बार ज़रूर देख लीजिए।

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

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

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

INI और JSON की तुलना
INIJSON
पूरा नामINI कॉन्फ़िगरेशनJavaScript Object Notation
फ़ाइल एक्सटेंशन.ini, .cfg, .conf.json
मीडिया टाइपtext/plainapplication/json
पहली बार प्रकाशित19852001
विनिर्देशRFC 8259
लाइसेंसखुला मानकखुला मानक
आज की स्थितिपुराना, फिर भी हर जगह पढ़ा जाता हैमौजूदा
ब्राउज़र में खुलता हैकोई ब्राउज़र नहींहर ब्राउज़र
इसकी जगह विचारणीयTOML, YAMLXML, YAML, NDJSON

क्या खो जाता है

टिप्पणियाँ साथ नहीं जातीं। INI में फ़ाइल के साथ समझाइश लिखी जा सकती है और JSON में उसके लिए कोई वाक्य-रचना ही नहीं, इसलिए हर समझाने वाली पंक्ति छूट जाती है — और चोट ठीक उन्हीं फ़ाइलों पर पड़ती है जिन पर टिप्पणियाँ लिखी जाती हैं: वह कॉन्फ़िगरेशन जिसे किसी और को सँभालना है।

नतीजा खोलना

JSON को हर मौजूदा ब्राउज़र खोल लेता है। INI को इतने भी नहीं। अगर फ़ाइल किसी वेब पेज या किसी फ़ॉर्म तक जा रही है, तो आम तौर पर इस कन्वर्ज़न की पूरी वजह यही है।

INI 1985 का है और अब मुश्किल से ही इस्तेमाल होता है। JSON वह है जो आज के प्रोग्राम लिखते हैं, इसलिए यह कन्वर्ज़न पढ़े जाते रहने का भी सवाल है।

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

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

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

JSON 2001 से चला आ रहा है, और RFC 8259 में तय किया गया है। Visual Studio Code, jq और Postman इस फ़ॉर्मेट को पढ़ लेते है।

INI 1985 में आया और JSON 2001 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।

INI से JSON: आम सवाल

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

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

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

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

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

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

INI से JSON जाने पर क्या टिप्पणियाँ बची रहती हैं?

टिप्पणियाँ साथ नहीं जातीं। INI में फ़ाइल के साथ समझाइश लिखी जा सकती है और JSON में उसके लिए कोई वाक्य-रचना ही नहीं, इसलिए हर समझाने वाली पंक्ति छूट जाती है — और चोट ठीक उन्हीं फ़ाइलों पर पड़ती है जिन पर टिप्पणियाँ लिखी जाती हैं: वह कॉन्फ़िगरेशन जिसे किसी और को सँभालना है।

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