CSV ते JSON रूपांतर: एक व्यावहारिक मार्गदर्शक
CSV फाइल (Comma-Separated Values) ही डेटा साठवण्याची एक साधी पद्धत आहे, जिथे प्रत्येक पंक्ती एक रेकॉर्ड दर्शवते आणि प्रत्येक स्तंभ कमा, सेमीकोलन किंवा टॅबसारख्या विशिष्ट विभाजकाने विभागला जातो. हे पृष्ठ अशा CSV फाइलचे JSON (JavaScript Object Notation) मध्ये रूपांतर करते, विशेषतः अशा अॅरेमध्ये जिथे प्रत्येक पंक्ती एक ऑब्जेक्ट बनते आणि प्रत्येक स्तंभ एक की (key) बनतो. तुम्ही फाइल ड्रॅग करून किंवा निवडून, योग्य विभाजक निवडून (CSV कमा, सेमीकोलन किंवा टॅब वापरत असल्यास), पूर्वावलोकन तपासून आणि नंतर डाउनलोड करून हे रूपांतर करू शकता.
हे पृष्ठ कशामुळे वेगळे बनते
या पृष्ठाचे सर्वात महत्त्वाचे वैशिष्ट्य म्हणजे ते CSV मधील प्रत्येक फील्डला फक्त मजकूर (string) म्हणून हाताळते. CSV प्रत्येक गोष्ट सपाट मजकूर म्हणून साठवते, तर JSON संख्या, बुलियन, null आणि नेस्टेड स्ट्रक्चर्सना समर्थन देते. परंतु हे साधन संख्यांना (किंमती, प्रमाण), तारखांना आणि अग्रगण्य शून्य असलेल्या ओळखकर्त्यांना (पिनकोड, उत्पादन कोड) आपोआप संख्या किंवा दिनांक मूल्यांमध्ये रूपांतरित करत नाही - ते सर्व आउटपुटमध्ये मजकूर म्हणूनच राहतात.
दुसरे महत्त्वाचे वैशिष्ट्य म्हणजे CSV ही सपाट तक्ता असल्यामुळे, रूपांतरण फक्त सपाट ऑब्जेक्ट्सचा अॅरे तयार करते. JSON मध्ये नेस्टेड स्ट्रक्चर्स (एखाद्या ऑब्जेक्टमध्ये आणखी एक ऑब्जेक्ट) CSV वरून तयार करता येत नाहीत, कारण त्यासाठी अतिरिक्त नियमांची आवश्यकता असते जी हे साधन लागू करत नाही.
विभाजकाची निवड अत्यंत महत्त्वाची आहे. तुम्ही तुमची CSV फाइल कमा, सेमीकोलन किंवा टॅब वापरते का हे स्पष्टपणे नमूद केले पाहिजे.
CSV मधील कोटिंग नियम (quoting rules) सार्वत्रिकपणे पाळले जात नाहीत. कोटेड फील्डमध्ये एम्बेड केलेले कमा, सेलमध्ये लाइन ब्रेक आणि अनएस्केप केलेले कोट्स हे पार्सिंग अयशस्वी होण्याचे सामान्य कारण आहेत. ही समस्या इतर स्वरूप बदलांच्या तुलनेत या रूपांतरणात अधिक गंभीर असते.
CSV स्वरूपाची मूलभूत तत्त्वे
CSV हा एक सोपा डेटा स्वरूप आहे जिथे प्रत्येक पंक्ती एक रेकॉर्ड दर्शवते आणि प्रत्येक फील्ड विभाजकाने विभागले जाते. सर्वात सामान्य विभाजक कमा (,) आहे, पण सेमीकोलन (;) आणि टॅब (Tab) देखील वापरले जातात. विशेषतः युरोपियन देशांमध्ये, जिथे कमा दशांश विभाजक म्हणून वापरला जातो, सेमीकोलन अधिक सामान्य आहे.
CSV मध्ये कोटिंग नियम महत्त्वाचे आहेत. जर एखाद्या फील्डमध्ये विभाजक असेल (उदा. कमा असलेले फील्ड), तर ते फील्ड दुहेरी कोट्समध्ये बंद केले जाते. जर फील्डमध्ये दुहेरी कोट्स असेल, तर ते दुसऱ्या दुहेरी कोट्सने एस्केप केले जाते (""). उदाहरणार्थ:
नाव, पत्ता, शहर
"जॉन डो", "123 मुख्य रस्ता, सोसायटी क्र. 2", पुणे
येथे पत्ता फील्डमध्ये कमा आहे, म्हणून ते कोट्समध्ये बंद केले आहे.
जर CSV फाइल योग्यरित्या पार्स केली जाऊ शकत नसेल (उदा. कोटिंगमध्ये त्रुटी, विसंगत स्तंभ संख्या), तर साधन "This CSV could not be parsed." हा संदेश दाखवते. जर फाइलमध्ये डेटा पंक्ती नसतील, तर "This file has no table rows." हा संदेश दाखवला जातो.
JSON रचना आणि सारणीबद्ध डेटा
JSON हा एक हलका डेटा इंटरचेंज स्वरूप आहे जो मानवांना वाचण्यास आणि मशीन्सना पार्स करण्यास सोपा आहे. सारणीबद्ध डेटासाठी, सर्वात सामान्य JSON रचना म्हणजे ऑब्जेक्ट्सचा अॅरे, जिथे प्रत्येक ऑब्जेक्ट एक पंक्ती दर्शवतो आणि प्रत्येक की-व्हॅल्यू जोडी एक स्तंभ दर्शवते. उदाहरणार्थ, खालील CSV:
नाव, वय, शहर
राहुल, 30, मुंबई
सीता, 25, दिल्ली
खालील JSON मध्ये रूपांतरित होईल:
[
{"नाव": "राहुल", "वय": "30", "शहर": "मुंबई"},
{"नाव": "सीता", "वय": "25", "शहर": "दिल्ली"}
]
लक्षात घ्या की वय ही संख्या असूनही, ती JSON मध्ये मजकूर म्हणूनच राहते ("30"), संख्या म्हणून नाही (30). हे महत्त्वाचे आहे कारण जर तुम्ही डेटा वापरणाऱ्या ऍप्लिकेशनमध्ये नंतर हे JSON लोड केले आणि ऑटो-टायपिंग असेल, तर अग्रगण्य शून्य गमावले जाऊ शकतात. उदाहरणार्थ, पिनकोड "411001" हे संख्येत रूपांतरित झाल्यास 411001 होईल, पण जर ते "0411001" असेल तर ते 411001 होऊन अग्रगण्य शून्य गमावले जाईल.
नेस्टेड स्ट्रक्चर्स (एखाद्या ऑब्जेक्टमध्ये आणखी एक ऑब्जेक्ट) CSV वरून तयार करता येत नाहीत. उदाहरणार्थ, जर तुम्हाला खालील JSON तयार करायचे असेल:
{"व्यक्ती": {"नाव": "राहुल", "वय": 30}}
तर त्यासाठी CSV वापरता येणार नाही. यासाठी तुम्हाला JSON स्वतः तयार करावा लागेल किंवा दुसऱ्या साधनाची मदत घ्यावी लागेल.
प्रकार आणि डेटा अखंडता
CSV मध्ये सर्व फील्ड मजकूर म्हणून साठवले जातात. याचा अर्थ असा की संख्या, तारखा, बुलियन मूल्ये आणि अग्रगण्य शून्य असलेल्या ओळखकर्त्यांना विशेष हाताळणीची आवश्यकता असते.
उदाहरणार्थ, खालील CSV विचारात घ्या:
पिनकोड, किंमत, स्टॉक
411001, 1500.50, 10
020301, 2500, 5
या CSV मधील पिनकोड फील्डमध्ये अग्रगण्य शून्य आहे (020301). हे साधन ते मजकूर म्हणूनच ठेवेल, म्हणून आउटपुट JSON मध्ये "पिनकोड": "020301" असे दिसेल. जर तुम्ही हे JSON नंतर JavaScript मध्ये JSON.parse() ने लोड केले, तर 020301 हे 20301 मध्ये रूपांतरित होऊ शकते, कारण JavaScript ऑटोमॅटिकली त्याला संख्या समजते.
किंमत ही संख्या असूनही, ती "1500.50" म्हणून स्ट्रिंगमध्येच राहते. जर तुम्हाला ती संख्या म्हणून हवी असेल, तर तुम्हाला ती नंतर रूपांतरित करावी लागेल.
स्टॉक ही संख्या "10" म्हणून राहते. जर तुम्ही JSON पार्सिंग करताना parseInt वापरलात, तर ती 10 मध्ये रूपांतरित होईल.
विभाजक निवड आणि सामान्य समस्या
विभाजकाची निवड योग्यरित्या करणे अत्यंत महत्त्वाचे आहे. जर तुम्ही चुकीचा विभाजक निवडलात, तर पार्सिंग पूर्णपणे अयशस्वी होऊ शकते किंवा चुकीचा डेटा निर्माण होऊ शकतो.
उदाहरणार्थ, जर तुमची CSV फाइल सेमीकोलन वापरत असेल:
नाव;शहर;वय
राहुल;मुंबई;30
सीता;दिल्ली;25
पण तुम्ही कमा विभाजक निवडलात, तर साधन प्रत्येक पंक्तीला एकच फील्ड समजेल आणि आउटपुट चुकीचे असेल.
काही फाइल्समध्ये विभाजक मिसळलेले असू शकतात. अशा परिस्थितीत, साधन त्रुटी दाखवेल. फाइल डाउनलोड करताना किंवा तयार करताना, तुम्ही योग्य विभाजक वापरत आहात याची खात्री करा.
CSV मध्ये कोटेड फील्डमध्ये लाइन ब्रेक देखील असू शकतात. उदाहरणार्थ:
नाव, पत्ता
राहुल, "123 मुख्य रस्ता
पुणे, महाराष्ट्र"
येथे पत्ता फील्डमध्ये लाइन ब्रेक आहे. हे साधन ते म्हणून जतन करेल, म्हणून JSON मध्ये "पत्ता": "123 मुख्य रस्ता पुणे, महाराष्ट्र" असे दिसेल.
क्लायंट-साइड प्रक्रिया आणि खाजगीपणा
हे साधन पूर्णपणे ब्राउझरमध्ये कार्य करते. याचा अर्थ असा की तुमची CSV फाइल कधीही सर्व्हरवर अपलोड होत नाही. सर्व प्रक्रिया तुमच्या संगणकावरच होते. हे संवेदनशील डेटासाठी (जसे की ग्राहक माहिती, आर्थिक डेटा, वैद्यकीय रेकॉर्ड) अत्यंत महत्त्वाचे आहे.
तथापि, हे लक्षात ठेवा की मोठ्या फाइल्ससाठी प्रक्रिया करण्यासाठी वेळ लागू शकतो. जर रूपांतरण खूप वेळ घेत असेल, तर "This conversion is taking too long. Try a smaller file." असा संदेश दिसेल.
मर्यादा आणि त्रुटी हाताळणी
हे साधन काही मर्यादा लागू करते:
- फाइल आकार:
"This file is too large. Use a file under ‹max›."- जर फाइल आकार 8 MB पेक्षा मोठा असेल तर हा संदेश दिसेल. - पंक्ती संख्या:
"This table has more than ‹max› rows."- जर तक्त्यात 10,000 पेक्षा जास्त पंक्ती असतील तर. - स्तंभ संख्या:
"This table has more than ‹max› columns."- जर तक्त्यात 200 पेक्षा जास्त स्तंभ असतील तर.
जर तुम्ही फाइल निवडली नसेल, तर "Choose one file first." असा संदेश दिसेल. जर चुकीची फाइल प्रकार निवडली असेल (CSV, JSON किंवा XLSX व्यतिरिक्त), तर "Choose a CSV, JSON or XLSX file." असा संदेश दिसेल.
FAQ
प्रश्न १: CSV मधील संख्या JSON मध्ये संख्या म्हणून का रूपांतरित होत नाहीत? उत्तर: CSV प्रत्येक फील्ड मजकूर म्हणून साठवते. हे साधन कोणतेही ऑटो-टायपिंग करत नाही, म्हणून सर्व मूल्ये मजकूर म्हणूनच राहतात. जर तुम्हाला संख्यांची गरज असेल, तर तुम्हाला ती नंतर रूपांतरित करावी लागतील.
प्रश्न २: अग्रगण्य शून्य असलेले कोड (जसे की पिनकोड) कसे जतन करावे?
उत्तर: हे साधन ते आपोआप मजकूर म्हणून जतन करते, म्हणून अग्रगण्य शून्य सुरक्षित राहतात. परंतु जर तुम्ही नंतर हे JSON दुसऱ्या साधनात लोड केले (जसे की JavaScript JSON.parse), तर तुम्ही स्ट्रिंग म्हणून ठेवण्याची खात्री करा.
प्रश्न ३: माझी CSV फाइल पार्स का होत नाही? मला "This CSV could not be parsed." संदेश का दिसतो?
उत्तर: हे बहुतेकदा चुकीच्या विभाजकामुळे, कोटिंगमध्ये त्रुटी, किंवा विसंगत स्तंभ संख्येमुळे होते. तुम्ही योग्य विभाजक निवडल्याची खात्री करा आणि फाइलमध्ये कोटिंगचे नियम योग्यरित्या पाळले आहेत का ते तपासा.
प्रश्न ४: मी एकाच वेळी अनेक CSV फाइल्स रूपांतरित करू शकतो का? उत्तर: हे साधन एका वेळी फक्त एक फाइल स्वीकारते. तुम्हाला प्रत्येक फाइलसाठी वेगळे रूपांतरण करावे लागेल.
प्रश्न ५: JSON मध्ये नेस्टेड ऑब्जेक्ट्स का तयार होत नाहीत? उत्तर: कारण CSV ही सपाट तक्ता आहे. नेस्टेड स्ट्रक्चर्स तयार करण्यासाठी, तुम्हाला डेटा मॅन्युअली तयार करावा लागेल का विशेष साधन वापरावे लागेल.
प्रश्न ६: माझी फाइल खूप मोठी आहे. काय करावे? उत्तर: या साधनाची मर्यादा 8 MB आहे. तुमची फाइल लहान भागांमध्ये विभागा आणि प्रत्येक भाग वेगळे रूपांतरित करा. किंवा डेस्कटॉप ऍप्लिकेशन वापरून पहा.