CSV, JSON, YAML और XML के बीच डेटा ट्रांसफर करना
डेटा शायद ही कभी एक फॉर्मेट में स्थिर रहता है। एक रिपोर्ट स्प्रेडशीट के रूप में आती है, API को JSON चाहिए, डिप्लॉयमेंट पाइपलाइन YAML की उम्मीद करती है, और कहीं न कहीं कोई पुरानी सर्विस अभी भी XML में बात करती है। डेटा के साथ काम करने में ज़्यादातर रोज़मर्रा की परेशानी डेटा खुद नहीं है, बल्कि उसे उस आकार से उस आकार में लाना है जो कोई और चाहता है। यही डेटा कन्वर्टर का पूरा काम है: एक नोटेशन में स्ट्रक्चर्ड टेक्स्ट लें और उसे दूसरे में दोबारा दें, बिना रास्ते में अर्थ खोए।
Speedor के कन्वर्टर पूरी तरह आपके ब्राउज़र में चलते हैं। आप पेस्ट करते हैं, क्लिक करते हैं, परिणाम कॉपी करते हैं। कुछ अपलोड नहीं होता, कुछ लॉग नहीं होता, और कुछ आपकी मशीन से नहीं जाता। जो कोई भी किसी रैंडम वेबसाइट पर कस्टमर एक्सपोर्ट डालने से पहले हिचकिचाया है, उसके लिए लोकल-ओनली डिज़ाइन ही मुद्दे की बात है।
हर फॉर्मेट वास्तव में किस काम के लिए अच्छा है
इनके बीच फेरबदल शुरू करने से पहले यह जानना मदद करता है कि ये फॉर्मेट क्यों मौजूद हैं, क्योंकि हर एक अलग काम के लिए बना था।
CSV वह सपाट, कॉमा-सेपरेटेड ग्रिड है जिसे स्प्रेडशीट पसंद करती हैं। यह स्वभाव से टेबुलर है: पंक्तियाँ और कॉलम, कुछ नेस्टेड नहीं। इसे Excel, Google Sheets, या Numbers में खोलें और यह बस काम करता है। कमी यह है कि CSV में टाइप की कोई अवधारणा नहीं है। 007 का मान एक स्ट्रिंग, नंबर, या पिन कोड हो सकता है, और CSV आपको नहीं बताएगा।
JSON आधुनिक वेब की साझी भाषा है। लगभग हर API जिसे आप कभी भी कॉल करेंगे वह इसे बोलता है। JSON नेस्टिंग, एरे, और कुछ वास्तविक टाइप (स्ट्रिंग, नंबर, बूलियन, null) को हैंडल करता है, जो इसे एक सपाट टेबल से कहीं अधिक अभिव्यंजक बनाता है। यह कॉम्पैक्ट, मशीन-फ्रेंडली और हर जगह सपोर्टेड है।
YAML JSON का अधिक पठनीय चचेरा भाई है। यह ब्रैकेट की जगह इंडेंटेशन उपयोग करता है, कमेंट सपोर्ट करता है, और आमतौर पर कॉन्फिगरेशन फ़ाइलों, Docker Compose, Kubernetes मेनिफेस्ट और CI पाइपलाइन का पसंदीदा फॉर्मेट है। जब किसी इंसान को कुछ हाथ से एडिट करना हो, तो YAML आमतौर पर आँखों पर अधिक दयालु होता है।
XML सबसे पुराना है। लंबा-चौड़ा, टैग-भारी, और अभी भी एंटरप्राइज़ सिस्टम, SOAP सर्विस, फाइनेंशियल मैसेजिंग और RSS जैसे डॉक्यूमेंट स्टैंडर्ड में गहराई से एम्बेडेड। नए प्रोजेक्ट में आप इसे कम देखेंगे, लेकिन जब ज़रूरत हो तो आपको वाकई ज़रूरत होती है।

कन्वर्ज़न वास्तव में कहाँ होती है
देखने पर परिदृश्य काफी ठोस हैं। मान लीजिए मार्केटिंग आपको 4,000 कॉन्टैक्ट की स्प्रेडशीट देती है और साइनअप API केवल JSON एरे स्वीकार करती है। आप शीट को CSV में एक्सपोर्ट करें, CSV to JSON से गुज़ारें, और आपके पास POST के लिए तैयार पेलोड है। कोई ग्लू स्क्रिप्ट नहीं, कोई pandas नहीं, किसी इंजीनियर का इंतज़ार नहीं।
या आप उसी API से JSON का एक टुकड़ा वापस खींचते हैं और इसे उस कॉन्फिग फ़ाइल में डालना चाहते हैं जिसे आपकी सर्विस स्टार्टअप पर पढ़ती है। JSON to YAML से कन्वर्ट करें और आपको कुछ साफ और टिप्पणी योग्य मिलता है जो आपके रेपो में ठीक बैठता है। दूसरी दिशा में भी काम करता है जब कोई टूल केवल JSON स्वीकार करता है लेकिन आपका कॉन्फिग YAML में रहता है।
और फिर वो इंटीग्रेशन है जो कोई पसंद नहीं करता: एक पार्टनर सिस्टम जो केवल XML इनजेस्ट करता है। आप अपना पेलोड JSON में बनाते हैं क्योंकि आपका ऐप ऐसे ही सोचता है, फिर बाउंड्री पर XML में कन्वर्ट करते हैं। आकार वही रहता है, केवल सिंटैक्स बदलता है।
जानने लायक सावधानियाँ
फॉर्मेट कन्वर्ज़न हमेशा बिना नुकसान के नहीं होती, और ऐसा मानना बग्स की ओर ले जाता है। कुछ बातें ध्यान में रखें:
CSV टाइप भूल जाता है। क्योंकि हर सेल बस टेक्स्ट है, नंबर, बूलियन और तारीखें सभी स्ट्रिंग के रूप में बाहर आते हैं जब तक कन्वर्टर आपके लिए अनुमान न लगाए। अगर true को "true" शब्द नहीं बल्कि बूलियन होना चाहिए, तो भेजने से पहले आउटपुट जाँचें।
YAML व्हाइटस्पेस की परवाह करता है। YAML में इंडेंटेशन सजावटी नहीं है, यह स्ट्रक्चरल है। एक अतिरिक्त स्पेस बदल सकती है कि कौन सी वैल्यू किस की से संबंधित है, और टैब बिल्कुल मना हैं। किसी भी JSON to YAML राउंड-ट्रिप के बाद, एक बार देखना सार्थक है, या परिणाम को JSON फॉर्मेटर से गुज़ारें यह पुष्टि करने के लिए कि स्ट्रक्चर बचा रहा।
XML और JSON साफ तौर पर मैप नहीं होते। JSON में एरे हैं; XML में दोहराए जाने वाले एलीमेंट हैं। JSON में कहीं एट्रिब्यूट नहीं हैं; XML में वे हर जगह हैं। अधिकांश कन्वर्टर एक उचित कन्वेंशन चुनते हैं, लेकिन अगर आपका XML एट्रिब्यूट का भारी उपयोग करता है, तो यह जो JSON बनाएगा वह हाथ से लिखे JSON से थोड़ा अलग दिखेगा। यह अपेक्षित है, कोई गलती नहीं।
नेस्टिंग की गहराई मायने रखती है। CSV सपाट है, इसलिए गहराई से नेस्टेड JSON हमेशा कॉलम में नहीं समेटा जा सकता बिना कीज़ को फ्लैट किए (जैसे address.city)। दूसरी तरफ, सपाट CSV एक सपाट एरे बनता है, कभी भी ट्री नहीं।

यहाँ लोकल-ओनली क्यों मायने रखता है
बहुत सारा डेटा जिसे आप कन्वर्ट करना चाहेंगे वह शेयर करने के लिए आपका नहीं है। यूज़र रिकॉर्ड, आंतरिक कॉन्फिग, किसी रिस्पॉन्स में दबी API कीज़, फाइनेंशियल पंक्तियाँ। बहुत सारे ऑनलाइन कन्वर्टर चुपचाप आपके पेस्ट को काम करने के लिए सर्वर पर भेज देते हैं। Speedor नहीं करता। कन्वर्ज़न लॉजिक आपके ब्राउज़र टैब में चलता है, डेटा कभी नेटवर्क पार नहीं करता, और टैब बंद करना ही सफाई है। यह तेज़ भी है, क्योंकि कोई अपलोड राउंड-ट्रिप नहीं है, और पेज लोड होने के बाद यह ऑफलाइन भी काम करता है। मुफ़्त, कोई साइनअप नहीं, कोई कोटा नहीं।
अक्सर पूछे जाने वाले सवाल
क्या मेरा डेटा कन्वर्ट करते समय कहीं अपलोड होता है?
नहीं। हर कन्वर्ज़न JavaScript का उपयोग करके आपके ब्राउज़र में लोकल रूप से चलता है। आपका डेटा कभी आपके डिवाइस से नहीं जाता और कभी सर्वर को नहीं भेजा जाता, इसीलिए ये टूल्स तब भी काम करते हैं जब आप ऑफलाइन हों।
क्या मैं बिना कोड लिखे CSV को JSON में कन्वर्ट कर सकता हूँ?
हाँ। अपना CSV कन्वर्टर में पेस्ट करें, कन्वर्ट पर क्लिक करें, और परिणामी JSON एरे कॉपी करें। पहली पंक्ति को कॉलम हेडर माना जाता है, जो प्रत्येक ऑब्जेक्ट की कीज़ बन जाती हैं।
मेरे कन्वर्टेड JSON में नंबर स्ट्रिंग के रूप में क्यों दिखते हैं?
CSV में डेटा टाइप की कोई अवधारणा नहीं है, इसलिए हर मान टेक्स्ट के रूप में शुरू होता है। कुछ कन्वर्टर स्वचालित रूप से नंबर और बूलियन पहचानने की कोशिश करते हैं, लेकिन संदेह में वे पिन कोड या शुरुआती शून्य वाले ID जैसी चीज़ों को दूषित करने से बचाने के लिए मानों को स्ट्रिंग रखते हैं।
JSON और YAML में क्या अंतर है?
वे एक ही तरह के डेटा दर्शाते हैं, लेकिन YAML ब्रेसिज़ और ब्रैकेट की जगह इंडेंटेशन उपयोग करता है, कमेंट की अनुमति देता है, और आमतौर पर लोगों के लिए पढ़ना और एडिट करना आसान होता है। JSON अधिक कॉम्पैक्ट है और अधिकांश वेब API का डिफॉल्ट है।
क्या इन फॉर्मेट के बीच कन्वर्ज़न हमेशा बिना नुकसान के होती है?
आमतौर पर, लेकिन हमेशा नहीं। JSON, YAML और XML अधिकांश मामलों में एक-दूसरे से अच्छी तरह मैप होते हैं। सबसे मुश्किल जोड़े CSV हैं, जो सपाट और टाइपलेस है, और XML जो JSON एरे से अलग तरीके से एट्रिब्यूट और दोहराए जाने वाले एलीमेंट संभालता है। महत्वपूर्ण डेटा के लिए हमेशा आउटपुट जाँचें।
क्या ये कन्वर्टर बड़ी फ़ाइलों पर काम करते हैं?
वे अधिकांश रोज़मर्रा की फ़ाइलें आराम से संभालते हैं क्योंकि काम आपकी अपनी मशीन पर होता है। परफॉर्मेंस सर्वर की बजाय आपके डिवाइस पर निर्भर करती है, इसलिए बहुत बड़ी फ़ाइलें मुख्य रूप से आपके ब्राउज़र मेमोरी तक सीमित हैं।
