CSV से JSON रूपांतरण: यह पृष्ठ कैसे काम करता है और क्यों अलग है
यह पृष्ठ एक CSV फ़ाइल (अल्पविराम, अर्धविराम या टैब से अलग किया गया टेक्स्ट) को JSON फ़ाइल में बदलने का काम करता है। आप फ़ाइल को ड्रैग करके या चुनकर अपलोड करते हैं, आउटपुट फ़ॉर्मेट “JSON” चुनते हैं, और सही डिलीमीटर बताते हैं। एक पूर्वावलोकन देखने के बाद आप तैयार JSON डाउनलोड कर सकते हैं। लेकिन यह रूपांतरण उतना सरल नहीं है जितना लगता है – CSV और JSON की मूल प्रकृति में कई महत्वपूर्ण अंतर हैं जिन्हें इस टूल को ध्यान में रखना पड़ता है।
इस पृष्ठ को अलग क्या बनाता है
सबसे पहली बात: CSV में हर फ़ील्ड सिर्फ़ एक टेक्स्ट स्ट्रिंग होती है। JSON में नंबर, बूलियन (true/false), null और नेस्टेड स्ट्रक्चर हो सकते हैं। इस टूल में कोई ऑटोमैटिक टाइप कन्वर्ज़न नहीं होता – हर CSV मान JSON में स्ट्रिंग ही रहेगा। आप कीमतें, मात्राएँ, डेट, या लीडिंग ज़ीरो वाले पोस्टकोड भेज रहे हैं, तो वे टेक्स्ट की तरह ही आउटपुट होंगे। यह जानबूझकर किया गया है क्योंकि CSV में टाइप की कोई जानकारी नहीं होती।
दूसरी बात: CSV एक फ्लैट टेबल है, इसलिए आउटपुट हमेशा फ्लैट ऑब्जेक्ट की एक ऐरे होगी। JSON में ऑब्जेक्ट के अंदर ऑब्जेक्ट (नेस्टिंग) नहीं बनाई जा सकती, क्योंकि CSV में ऐसा कोई तरीका नहीं है। यदि आपको नेस्टेड JSON चाहिए, तो आपको अतिरिक्त नियमों की ज़रूरत होगी जो यह टूल प्रदान नहीं करता।
तीसरी बात: डिलीमीटर का चुनाव ज़रूरी है। CSV फ़ाइल में कॉमा, सेमिकोलन या टैब का इस्तेमाल हो सकता है। टूल में आपको यह बताना होगा। JSON या Excel इनपुट वाले पेजों में ऐसी कोई ज़रूरत नहीं है।
चौथी बात: CSV की क्वोटिंग नियम सार्वभौमिक रूप से पालन नहीं किए जाते। एम्बेडेड कॉमा (quoted fields के अंदर), सेल के भीतर लाइन ब्रेक, और अनएस्केप्ड कोट्स पार्सिंग विफलता का सबसे बड़ा कारण हैं। यह समस्या JSON या XLSX जैसे अन्य फ़ॉर्मेट में नहीं होती।
CSV प्रारूप की मूल बातें और डिलीमीटर का चुनाव
CSV (Comma-Separated Values) में प्रत्येक पंक्ति एक रिकॉर्ड होती है और प्रत्येक फ़ील्ड एक डिलीमीटर से अलग होती है। सबसे आम डिलीमीटर कॉमा है, लेकिन क्षेत्रीय सेटिंग्स के कारण कई यूरोपीय देश अर्धविराम का उपयोग करते हैं (क्योंकि कॉमा दशमलव के रूप में प्रयोग होता है)। टैब-सेपरेटेड फ़ाइलें भी आम हैं।
टूल में आप तीन विकल्पों में से चुन सकते हैं: कॉमा, सेमिकोलन, या टैब। यदि आप गलत डिलीमीटर चुनते हैं, तो पार्सिंग विफल हो जाएगी और टूल दिखाएगा: "This CSV could not be parsed." यहाँ एक सामान्य गलती यह है कि लोग मान लेते हैं कि फ़ाइल का एक्सटेंशन.csv है तो डिलीमीटर कॉमा ही होगा, जबकि वास्तव में बहुत सी Microsoft Excel एक्सपोर्ट की गई CSV फ़ाइलें स्थानीयकरण के अनुसार अर्धविराम का उपयोग करती हैं।
CSV में एक फ़ील्ड के अंदर डिलीमीटर होने पर उसे डबल कोट्स में रखा जाता है। उदाहरण: Name,Address,Phone और एक पंक्ति John,"123, Main St",555-1234। लेकिन सभी CSV एक्सपोर्टर इस नियम का पालन नहीं करते। अगर कोट्स के अंदर भी कोट्स हों (जैसे "He said ""Hello"""), तो उन्हें डबल-एस्केप करना होता है। टूल इन नियमों को समझता है, लेकिन अगर फ़ाइल में असंगत क्वोटिंग है, तो यह असफल हो सकता है।
लाइन ब्रेक के बारे में एक और बात: CSV में कोटेड फ़ील्ड के अंदर नई लाइन हो सकती है। टूल उन्हें JSON स्ट्रिंग में \n के रूप में संरक्षित करता है। यह उपयोगी है जब आपके पास पतों या टिप्पणियों जैसे बहु-पंक्ति डेटा हो।
JSON संरचना और डेटा प्रकार: टेक्स्ट बनाम टाइप किए गए मान
JSON आउटपुट एक ऐरे होता है जिसमें प्रत्येक ऑब्जेक्ट एक पंक्ति को दर्शाता है। पहली पंक्ति (हेडर) ऑब्जेक्ट की कुंजियाँ (keys) बन जाती हैं, और शेष पंक्तियाँ मान (values) बनती हैं। हर मान एक स्ट्रिंग होता है, भले ही मूल CSV में वह संख्या, बूलियन, या तारीख क्यों न दिखता हो।
उदाहरण: यदि CSV में 123 है, तो JSON में "123" आएगा, न कि 123 (संख्या)। यह जानबूझकर है क्योंकि टूल को यह नहीं पता कि क्या 123 एक पिन कोड, एक मात्रा, या एक आईडी है। लीडिंग ज़ीरो वाली चीज़ें (जैसे 00123) CSV में टेक्स्ट के रूप में संरक्षित रहती हैं, और JSON में भी "00123" ही रहेंगी। अगर आप JSON को किसी प्रोग्रामिंग भाषा में लोड करते हैं जो ऑटो-टाइपिंग करती है (जैसे JavaScript का JSON.parse()), तो वह "00123" को स्ट्रिंग ही समझेगी – जब तक कि आप स्वयं मैन्युअल रूप से न बदलें।
बूलियन के लिए: CSV में TRUE या FALSE टेक्स्ट हैं; JSON में वे "TRUE" और "FALSE" होंगे, true और false नहीं। इसी तरह null के बजाय "null" स्ट्रिंग आएगा। यदि आपको वास्तविक बूलियन या null चाहिए, तो आपको JSON डाउनलोड करने के बाद मैन्युअल रूपांतरण करना होगा।
नेस्टिंग की अनुपस्थिति का मतलब है कि सभी ऑब्जेक्ट में समान कुंजियाँ होंगी। कोई भी ऑब्जेक्ट दूसरे ऑब्जेक्ट के अंदर नहीं होगा। यह “टेबल-शेप्ड” JSON है – आमतौर पर एपीआई और डेटाबेस एक्सपोर्ट में ऐसा ही होता है।
रूपांतरण प्रक्रिया और उपयोगकर्ता विकल्प
टूल का इनपुट एक CSV फ़ाइल है (हालाँकि यह JSON और XLSX को भी पढ़ सकता है, लेकिन मुख्य परिदृश्य CSV → JSON है)। आप तीन चरण करते हैं:
- फ़ाइल चुनें या ड्रैग करें।
- आउटपुट फ़ॉर्मेट “JSON” पर सेट करें।
- यदि इनपुट CSV है, तो डिलीमीटर चुनें (कॉमा, सेमिकोलन, या टैब)।
इसके बाद टूल पूर्वावलोकन दिखाता है: परिवर्तित JSON, पंक्तियों और स्तंभों की संख्या, और आउटपुट फ़ाइल का आकार। आप पूर्वावलोकन देख सकते हैं और फिर डाउनलोड कर सकते हैं।
सभी प्रसंस्करण क्लाइंट-साइड (ब्राउज़र में) होता है – कोई सर्वर पर फ़ाइल अपलोड नहीं होती। यह संवेदनशील डेटा (जैसे ग्राहक सूची, वित्तीय रिकॉर्ड) के लिए विशेष रूप से महत्वपूर्ण है। टूल को कोई बाहरी सर्वर कनेक्शन नहीं चाहिए।
सीमाएँ और त्रुटि संदेश
टूल की कुछ सीमाएँ हैं जो संभावित विफलताओं को स्पष्ट करती हैं:
- फ़ाइल का आकार: यदि फ़ाइल बहुत बड़ी है, तो संदेश आता है:
"This file is too large. Use a file under ‹max›."(यहाँ‹max›एक निर्धारित अधिकतम सीमा है जो टूल के संस्करण पर निर्भर करती है।) - पंक्तियों या स्तंभों की संख्या: अगर तालिका में अधिकतम सीमा से अधिक पंक्तियाँ हैं तो
"This table has more than ‹max› rows."दिखता है। इसी तरह स्तंभों के लिए। - पार्सिंग विफलता: यदि CSV में क्वोटिंग त्रुटियाँ या असंगत स्तंभ गणना है, तो
"This CSV could not be parsed."दिखेगा। - कोई डेटा नहीं: खाली फ़ाइल या बिना डेटा पंक्तियों के लिए
"This file has no table rows." - कोई फ़ाइल नहीं चुनी:
"Choose one file first." - गलत फ़ाइल प्रकार:
"Choose a CSV, JSON or XLSX file." - टाइमआउट: यदि रूपांतरण बहुत लंबा लेता है, तो
"This conversion is taking too long. Try a smaller file."
ये संदेश उपयोगकर्ता को समस्या का सटीक कारण बताते हैं ताकि वह अपनी फ़ाइल को ठीक कर सके।
इस टूल की आवश्यकता किसे है?
- डेवलपर्स: जिन्हें डेटाबेस या स्प्रेडशीट से CSV एक्सपोर्ट मिलता है और उसे किसी JavaScript ऐप या API में फीड करना है जो JSON समझता है। वे बिना सर्वर पर डेटा भेजे स्थानीय रूपांतरण कर सकते हैं।
- डेटा विश्लेषक: जो पुरानी CSV फ़ाइलों (जैसे लीडिंग ज़ीरो वाले पोस्टकोड) को JSON में बदलना चाहते हैं और ज़ीरो को बरकरार रखना चाहते हैं। कोई ऑटो-टाइपिंग न होने से डेटा अखंडता बनी रहती है।
- टीमें: गैर-तकनीकी सहकर्मी (जो Excel/CSV में काम करते हैं) और तकनीकी टीम (जो JSON का उपयोग करते हैं) के बीच गोपनीय डेटा साझा करने के लिए।
- शोधकर्ता/छात्र: एक बार के रूपांतरण के लिए, जब उन्हें किसी साधारण तालिका को प्रोग्रामिंग असाइनमेंट के लिए संरचित JSON में बदलना हो।
अक्सर पूछे जाने वाले प्रश्न
प्रश्न 1: मेरे CSV में संख्याएँ हैं, लेकिन JSON में वे कोट्स के अंदर हैं। क्या मैं उन्हें नंबर बना सकता हूँ? उत्तर: टूल स्वचालित रूप से नंबर नहीं बनाता। सभी मान स्ट्रिंग रहते हैं। आप डाउनलोड करने के बाद किसी भी प्रोग्रामिंग भाषा या टेक्स्ट एडिटर में रेगुलर एक्सप्रेशन या मैन्युअल संपादन से उन्हें नंबर में बदल सकते हैं। यह सावधानी इसलिए है क्योंकि CSV में “123” पिन कोड भी हो सकता है।
प्रश्न 2: मेरे CSV में कोट्स के अंदर अल्पविराम हैं, लेकिन टूल उन्हें गलत पार्स कर रहा है। क्या करूँ?
उत्तर: जाँच करें कि आपने सही डिलीमीटर चुना है। इसके अलावा, सुनिश्चित करें कि कोट्स सही ढंग से एस्केप किए गए हैं (कोट्स के अंदर कोट्स को डबल करें जैसे "He said ""Hello"""। यदि फ़ाइल में असंगत क्वोटिंग है, तो टूल "This CSV could not be parsed." दिखाएगा।
प्रश्न 3: मेरे पास एक बड़ी CSV फ़ाइल है – क्या मैं इसे आसानी से बदल सकता हूँ? उत्तर: फ़ाइल के आकार और पंक्तियों/स्तंभों की संख्या की एक सीमा है। यदि फ़ाइल बहुत बड़ी है या अधिकतम पंक्तियों/स्तंभों से अधिक है, तो टूल त्रुटि संदेश देगा। इसे छोटे भागों में विभाजित करके प्रयास करें।
प्रश्न 4: क्या मेरा डेटा सर्वर पर अपलोड होता है? उत्तर: नहीं। सभी प्रसंस्करण आपके ब्राउज़र में होता है। कोई भी फ़ाइल किसी सर्वर पर नहीं भेजी जाती। यह गोपनीयता के लिए महत्वपूर्ण है।
प्रश्न 5: अगर मेरी CSV फ़ाइल में लाइन ब्रेक हैं, तो क्या वे संरक्षित रहेंगे?
उत्तर: हाँ, यदि लाइन ब्रेक कोटेड फ़ील्ड के अंदर हैं, तो वे JSON स्ट्रिंग में \n के रूप में रहेंगे। यदि वे अनकोटेड हैं, तो CSV पार्सिंग विफल हो जाएगी।
प्रश्न 6: क्या मैं इस टूल से CSV को नेस्टेड JSON में बदल सकता हूँ? उत्तर: नहीं। यह टूल हमेशा एक फ्लैट ऐरे ऑफ़ ऑब्जेक्ट बनाता है। नेस्टिंग के लिए आपको किसी अन्य उपकरण या स्क्रिप्ट की आवश्यकता होगी जो अतिरिक्त नियमों को लागू कर सके।