CSV र JSON: उही डाटा बोक्ने दुई तरिका
धेरैजसो तालिकाकार डाटा दुई ढाँचामध्ये एउटामा बस्छ। CSV स्प्रेडसिटको आफ्नै भाषा हो: एउटा सादा टेक्स्ट फाइल जहाँ हरेक लाइन एउटा पङ्क्ति हो र अल्पविरामले स्तम्भहरू छुट्याउँछ। JSON API र एपहरूको भाषा हो: वस्तु (कुञ्जी र मान जोडी) र एरे (क्रमबद्ध सूची) बाट बनेको संरचित टेक्स्ट ढाँचा। तिनले उही जानकारी धेरै फरक आकारमा वर्णन गर्छन्, जुनचाहिँ बीचमा रूपान्तरण गर्नु किन यति बारम्बार आउँछ भन्नुको कारण हो। यो पृष्ठले त्यो रूपान्तरण दुवै दिशामा गर्छ, पूर्णतया तपाईंको ब्राउजरभित्रै।
CSV जहाँ ग्रिड स्वाभाविक लाग्छ त्यहाँ चम्किन्छ। डाटाबेसबाट रिपोर्ट एक्सपोर्ट गर्नुहोस्, अर्डरहरूको सूची डाउनलोड गर्नुहोस्, वा Excel वा Google Sheets बाट सिट सेभ गर्नुहोस्, र तपाईंले लगभग सधैं CSV पाउनुहुन्छ। यो सानो, मानिसले पढ्न सक्ने छ, र पृथ्वीको हरेक विश्लेषण उपकरणले यसलाई खोल्न सक्छ। JSON जहाँ सफ्टवेयरले सफ्टवेयरसँग कुरा गर्छ त्यहाँ चम्किन्छ। REST API हरूले यो पठाउँछन् र प्राप्त गर्छन्, कन्फिगरेसन फाइलहरूले यो प्रयोग गर्छन्, र जाभास्क्रिप्टले कुनै पनि पार्सिङ लाइब्रेरी बिना यो पढ्छ। तपाईंलाई स्प्रेडसिट एक्सपोर्टलाई API मा खुवाउनुपर्दा वा API प्रतिक्रियालाई स्प्रेडसिटमा तान्नुपर्दा, तपाईं वास्तवमा यी दुई संसारबीच अनुवाद गर्दै हुनुहुन्छ।

पङ्क्ति र हेडरहरू कसरी वस्तु बन्छन्
यो म्यापिङ देखिनेभन्दा सरल छ। CSV फाइलको पहिलो लाइन सामान्यतया हेडर पङ्क्ति हुन्छ, र ती हेडर नामहरू JSON मा कुञ्जी बन्छन्। पछिको हरेक पङ्क्ति एउटा वस्तु बन्छ, जहाँ हरेक सेल मिल्दो हेडरसँग जोडिन्छ। सम्पूर्ण फाइल ती वस्तुहरूको एउटा एरे बन्छ। त्यसैले name,email,age स्तम्भ भएको CSV [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...] जस्तो सूचीमा बदलिन्छ। उल्टो दिशामा, JSON बाट CSV मा पहिलो वस्तुको कुञ्जीहरू पढेर हेडर लाइन बनाइन्छ, त्यसपछि हरेक वस्तुका लागि एउटा पङ्क्ति लेखिन्छ। तपाईंको डाटा साँच्चै तालिकाकार भएसम्म यो सफा, अनुमानयोग्य राउन्ड ट्रिप हो।
याद राख्नुपर्ने झमेलाहरू
CSV सामान्य देखिन्छ तर केही तीखो किनाराहरू लुकाउँछ। सबैभन्दा ठूलो हो फिल्डभित्रको अल्पविराम। कुनै ठेगानामा "बर्लिन, जर्मनी" छ भने, अल्पविरामलाई भोलीभाव नराखी विभाजन गर्दा त्यो एउटै मान दुई स्तम्भमा च्यातिन्छ। CSV मानकले यस्ता फिल्डलाई डबल कोटमा बेरेर यो सम्हाल्छ, र कोट गरिएको फिल्डभित्रको कोटलाई दोब्बर पारिन्छ ("")। राम्रो कन्भर्टरले ती नियमहरू सम्मान गर्छ ताकि तपाईंको डाटा चुपचाप स्तम्भ नबदलोस्। डेलिमिटरमा पनि ध्यान दिनुहोस्: धेरै युरोपेली एक्सपोर्टले अल्पविरामको सट्टा सेमीकोलन प्रयोग गर्छन्, किनभने त्यहाँ अल्पविराम पहिले नै दशमलव विभाजक हो। ट्याब र पाइपहरू पनि देखा पर्छन्।
गहिरो भिन्नता प्रकारहरूको हो। CSV मा डाटा प्रकारको कुनै अवधारणा छैन। सबै टेक्स्ट हो, त्यसैले संख्या 42, बुलियन true, र खाली सेल सबै सादा स्ट्रिङजस्तै देखिन्छन्। JSN ले भने संख्या, स्ट्रिङ, बुलियन, null, र नेस्ट गरिएको संरचनाबीच भिन्नता छुट्याउँछ। तपाईंले CSV लाई JSON मा रूपान्तरण गर्दा, उपकरणलाई संख्या र बुलियन व्याख्या गर्न भनिएको छैन भने मानहरू स्ट्रिङको रूपमा आउँछन्। JSON लाई CSV मा रूपान्तरण गर्दा उल्टो समस्या हुन्छ: नेस्ट गरिएका वस्तु र एरे समतल ग्रिडमा राम्रोसँग फिट हुँदैनन्, त्यसैले तिनी सामान्यतया एउटा सेलमा समतल वा स्ट्रिङमा बदलिन्छन्। यो पहिल्यै थाहा पाउनाले पछि स्तम्भ किन "गलत देखिन्छ" भनेर उल्झनबाट जोगाउँछ।

वास्तविक राउन्ड ट्रिप
यहाँ बारम्बार आउने परिस्थिति छ। कुनै सहकर्मीले तपाईंलाई नयाँ प्रयोगकर्ताहरूको स्प्रेडसिट पठाउँछ र तिनलाई आन्तरिक API मार्फत लोड गर्न भन्छ। API ले केवल JSON स्वीकार गर्छ। तपाईं सिटलाई CSV मा एक्सपोर्ट गर्नुहुन्छ, यहाँ पेस्ट गर्नुहुन्छ, र आफ्नो अनुरोध पेलोडमा हाल्न तयार वस्तुहरूको सफा एरे फिर्ता पाउनुहुन्छ। पछि, API ले यसले सिर्जना गरेका रेकर्डको JSON सूची फिर्ता दिन्छ, र तपाईंले त्यसलाई समीक्षाका लागि उही सहकर्मीलाई फिर्ता दिनुपर्छ। तपाईं JSON पेस्ट गर्नुहुन्छ, यसलाई CSV मा रूपान्तरण गर्नुहुन्छ, र यो सीधै तिनको स्प्रेडसिटमा खुल्छ। कुनै स्क्रिप्ट छैन, कुनै इन्स्टल छैन, केवल सामान्य वर्कफ्लोको बीचमा दुई छिटो अनुवाद।
डिजाइनद्वारा केवल स्थानीय
यो सबै तपाईंको ब्राउजरमा चल्छ। तपाईंको CSV र JSON तपाईंकै मेसिनमा जाभास्क्रिप्टद्वारा पार्स र रूपान्तरण गरिन्छ, र केही पनि सर्भरमा अपलोड हुँदैन। यो महत्त्वपूर्ण हुन्छ किनभने एक्सपोर्टहरूमा प्रायः वास्तविक नाम, इमेल, अर्डर विवरण, वा आन्तरिक पहिचानकर्ता हुन्छन् जुन तपाईंले कुनै अनियमित टाढाको सेवामा पेस्ट गर्नुहुँदैन। यहाँ डाटा कहिल्यै पृष्ठ छोड्दैन। तपाईंलाई पछि नतिजा सफा गर्न मन लागेमा, हाम्रो JSON फर्म्याटर ले प्रिटी प्रिन्ट र प्रमाणीकरण गर्नेछ, र सम्बन्धित ढाँचाका लागि हाम्रो बाँकी डाटा कन्भर्टरहरू हेर्न सक्नुहुन्छ।
बारम्बार सोधिने प्रश्नहरू
के मेरो डाटा कतै अपलोड हुन्छ?
होइन। रूपान्तरण पूर्णतया तपाईंको ब्राउजरमा जाभास्क्रिप्ट प्रयोग गरेर हुन्छ, त्यसैले तपाईंको CSV र JSON तपाईंकै डिभाइसमा रहन्छ र कहिल्यै सर्भरमा पठाइँदैन।
के कन्भर्टरले फिल्डभित्रको अल्पविराम सम्हाल्छ?
हो। अल्पविराम भएका फिल्डहरू CSV मा डबल कोटमा बेरिनुपर्छ, र पार्सरले ती कोटहरू सम्मान गर्छ ताकि मान एउटै स्तम्भमा रहन्छ।
मेरा संख्याहरू JSON मा किन टेक्स्टको रूपमा देखिन्छन्?
CSV मा कुनै डाटा प्रकार हुँदैन, त्यसैले हरेक सेल सादा टेक्स्ट हो। संख्या र बुलियन पार्सिङ लागू नगरेसम्म मानहरू JSON स्ट्रिङ बन्छन्, किनभने स्रोत फाइलले संख्या र शब्दबीच भिन्नता छुट्याउने कुनै तरिका दिँदैन।
CSV मा रूपान्तरण गर्दा नेस्ट गरिएको JSON को के हुन्छ?
समतल ग्रिडले नेस्ट गरिएका संरचना राख्न सक्दैन, त्यसैले नेस्ट गरिएका वस्तु र एरे सामान्यतया समतल हुन्छन् वा एउटा सेलभित्र एकल स्ट्रिङ मानको रूपमा लेखिन्छन्।
के म अल्पविरामको सट्टा सेमीकोलन वा ट्याब प्रयोग गर्न सक्छु?
हो। धेरै एक्सपोर्ट, विशेष गरी युरोपेली एक्सपोर्टहरूले सेमीकोलन वा ट्याबलाई डेलिमिटरको रूपमा प्रयोग गर्छन्, र उपकरणले मानक अल्पविरामको सट्टा तिनलाई पढ्न सक्छ।
यसले दुवै दिशामा रूपान्तरण गर्छ?
हो। तपाईं CSV लाई JSON मा र JSON लाई फेरि CSV मा बदल्न सक्नुहुन्छ, जसले स्प्रेडसिट र API बीचको राउन्ड ट्रिपलाई सजिलो बनाउँछ।
