JSON को CSV में बदलने की पूरी गाइड
यह टूल क्या करता है और क्यों अलग है
JSON (JavaScript Object Notation) एक पदानुक्रमित, टाइप किया हुआ डेटा फ़ॉर्मेट है जो ऑब्जेक्ट, ऐरे, संख्याएँ, बूलियन और null मानों को नेस्टेड संरचनाओं में संग्रहीत करता है। दूसरी ओर CSV (Comma-Separated Values) पूरी तरह सपाट, टाइप रहित तालिका है जिसमें कोई नेस्टिंग, कोई डेटा प्रकार, और कोई अलग शीट नहीं होती। इस टूल का काम JSON को CSV में बदलना है, लेकिन यह सामान्य फ़ॉर्मेट रूपांतरण से कहीं अधिक जटिल है, क्योंकि यह एक पदानुक्रमित, टाइप किए गए डेटा फ़ॉर्मेट को पूरी तरह सपाट, अटाइप्ड तालिका में चपटा (flatten) करता है।
जब आप JSON फ़ाइल अपलोड करते हैं या ड्रैग-एंड-ड्रॉप करते हैं, तो यह टूल उसे CSV में बदलता है। आप आउटपुट CSV के लिए विभाजक (delimiter) चुन सकते हैं: कॉमा (Comma), सेमीकोलन (Semicolon), या टैब (Tab)। तालिका का प्रीव्यू देख सकते हैं, और कन्वर्टेड फ़ाइल डाउनलोड कर सकते हैं। सबसे महत्वपूर्ण बात यह है कि सारी प्रोसेसिंग आपके ब्राउज़र में ही होती है — कोई डेटा किसी सर्वर पर अपलोड नहीं होता।
यह टूल CSV-से-एक्सेल या एक्सेल-से-JSON कन्वर्जन से इस मामले में अलग है कि यहाँ हम एक टाइप्ड, नेस्टेड फ़ॉर्मेट से एक फ्लैट, अनटाइप्ड तालिका में जा रहे हैं। रूपांतरण के दौरान सभी प्रकार की जानकारी, नेस्टेड संरचना, एकाधिक शीट (JSON में कोई शीट नहीं होती), और फ़ॉर्मेटिंग खो जाती है।
फ्लैटनिंग तकनीक: डॉट-पाथ नोटेशन
JSON में नेस्टेड ऑब्जेक्ट्स को एक सपाट CSV में प्रस्तुत करने के लिए, टूल ऑब्जेक्ट कुंजियों को डॉट-पाथ नोटेशन (dot-path notation) का उपयोग करके चपटा करता है। उदाहरण के लिए, यदि आपके पास एक JSON ऑब्जेक्ट है:
{
"name": "रवि",
"address": {
"city": "दिल्ली",
"pincode": "110001"
},
"age": 30
}
तो CSV में यह इस प्रकार दिखेगा:
| name | address.city | address.pincode | age |
|---|---|---|---|
| रवि | दिल्ली | 110001 | 30 |
यहाँ address ऑब्जेक्ट के भीतर के फ़ील्ड address.city और address.pincode के रूप में फ्लैटन हो गए हैं। यह डॉट-पाथ नोटेशन ही मुख्य तकनीक है जो पदानुक्रमिक डेटा को सारणीबद्ध रूप में लाती है।
जब JSON में ऑब्जेक्ट्स की एक ऐरे होती है, तो प्रत्येक ऑब्जेक्ट एक पंक्ति बन जाता है, और ऑब्जेक्ट कुंजियाँ कॉलम बन जाती हैं। यदि ऐरे के अंदर और ऐरे हो (arrays of arrays), तो प्रत्येक आंतरिक ऐरे एक पंक्ति बन जाता है और उसके तत्व कॉलम बनते हैं — यहाँ ऑब्जेक्ट कुंजियाँ नहीं होतीं।
उदाहरण के लिए, यदि JSON इस प्रकार है:
[
{"a": 1, "b": 2},
{"a": 3, "b": 4}
]
तो CSV में दो पंक्तियाँ और दो कॉलम होंगे — a और b। लेकिन यदि JSON इस प्रकार है:
[,
]
तब भी दो पंक्तियाँ और दो कॉलम होंगे, लेकिन कॉलम हेडर (शीर्षक) नहीं होंगे — केवल मान।
डेटा प्रकारों की हानि और सीमाएँ
JSON चार प्रमुख डेटा प्रकारों को समर्थन करता है: संख्याएँ (integers और floats), बूलियन (true/false), स्ट्रिंग, और null। CSV में कोई प्रकार नहीं है — सब कुछ स्ट्रिंग के रूप में संग्रहीत होता है। इसलिए रूपांतरण के दौरान:
- संख्याएँ (
30,3.14) → स्ट्रिंग"30","3.14"बन जाती हैं - बूलियन (
true) → स्ट्रिंग"true"बन जाता है null→ स्ट्रिंग""(खाली) या"null"बन सकता है (निर्भर करता है)- लीडिंग जीरो (
"007"→"7"या7खो जाते हैं क्योंकि CSV कोई टाइप जानकारी नहीं रखता)
यह विशेष रूप से तब समस्या पैदा करता है जब आप पिनकोड, फ़ोन नंबर, या कर्मचारी आईडी जैसे डेटा के साथ काम कर रहे हों जिनमें लीडिंग जीरो होते हैं। उदाहरण के लिए, "00123" JSON में एक स्ट्रिंग है और उसे CSV में "00123" मिलना चाहिए, लेकिन यदि JSON में यह संख्या 123 के रूप में संग्रहीत है, तो CSV में 123 ही मिलेगा।
इसके अलावा, CSV डेलिमिटर के रूप में कॉमा, सेमीकोलन, या टैब का उपयोग करता है। जब आपके डेटा में ये वर्ण हों (जैसे कि "राम, श्याम और गीता"), तो उन्हें उद्धरण चिह्नों (quotes) में बंद करना पड़ता है। टूल यह स्वचालित रूप से करता है — कॉमा, लाइन ब्रेक, और उद्धरण चिह्नों के अंदर आने वाले उद्धरण चिह्नों को उचित रूप से एस्केप किया जाता है।
तालिका-आकार की जाँच और त्रुटियाँ
JSON को CSV में बदलने के लिए यह ज़रूरी है कि JSON तालिका-आकार (table-shaped) हो। "तालिका-आकार" का अर्थ है कि JSON या तो ऑब्जेक्ट्स की एक ऐरे हो (जहाँ प्रत्येक ऑब्जेक्ट के कुंजी-मान जोड़े एक पंक्ति बनाते हैं) या ऐरे की ऐरे हो (जहाँ प्रत्येक आंतरिक ऐरे एक पंक्ति बनाती है)। यदि JSON में एकल ऑब्जेक्ट है (बिना ऐरे के), या ऑब्जेक्ट्स की आंतरिक संरचना असमान है, तो टूल त्रुटि देगा: "This JSON is invalid or not table‑shaped."
इसके अतिरिक्त, तीन प्रमुख सीमाएँ हैं:
| सीमा प्रकार | त्रुटि संदेश |
|---|---|
| फ़ाइल आकार | "This file is too large. Use a file under ‹max›." |
| पंक्तियाँ | "This table has more than ‹max› rows." |
| कॉलम | "This table has more than ‹max› columns." |
अन्य त्रुटियों में शामिल हैं: "Choose one file first.", "Choose a CSV, JSON or XLSX file.", "Choose a different output format.", "Could not convert this file.", "Conversion cancelled.", और "This conversion is taking too long. Try a smaller file."
यह ध्यान रखना महत्वपूर्ण है कि टूल केवल दृश्य मानों को परिवर्तित करता है — कोई सूत्र या कोड संसाधित नहीं होते। और चूँकि सब कुछ क्लाइंट-साइड होता है, कोई डेटा आपके ब्राउज़र से बाहर नहीं जाता, जो गोपनीयता-संवेदनशील वर्कफ़्लो के लिए बड़ा लाभ है।
विभाजक (डेलिमिटर) का चयन और उसका महत्व
CSV फ़ाइल में डेटा फ़ील्ड को अलग करने के लिए एक विभाजक वर्ण का उपयोग किया जाता है। डिफ़ॉल्ट रूप से यह कॉमा होता है, लेकिन विश्व के कई स्थानों (जैसे यूरोप, दक्षिण अमेरिका) में दशमलव चिह्न के रूप में कॉमा का उपयोग किया जाता है, इसलिए वहाँ CSV में सेमीकोलन विभाजक अधिक प्रचलित है। यह टूल तीन विकल्प देता है:
| विभाजक | सामान्य उपयोग |
|---|---|
कॉमा (,) |
अंग्रेज़ी-भाषी देशों में मानक |
सेमीकोलन (;) |
यूरोप, लैटिन अमेरिका में दशमलव कॉमा के साथ टकराव से बचने के लिए |
टैब (\t) |
डेटा में कॉमा और सेमीकोलन दोनों होने पर उपयोगी; कई स्प्रेडशीट टूल द्वारा समर्थित |
गलत विभाजक चुनने पर परिणामी CSV कई स्प्रेडशीट प्रोग्राम (जैसे Excel) में सही ढंग से नहीं खुलेगी। उदाहरण के लिए, यदि आप कॉमा विभाजक के साथ CSV बनाते हैं लेकिन आपका डेटा स्वयं कॉमा से भरा हुआ है, तो आपको उचित उद्धरण की आवश्यकता होगी — जो टूल स्वचालित रूप से करता है — लेकिन यदि आप Excel के किसी स्थानीय संस्करण (जैसे जर्मन) में CSV खोलते हैं, तो हो सकता है कि वह डिफ़ॉल्ट रूप से सेमीकोलन विभाजक की अपेक्षा करे।
क्लाइंट-साइड प्रोसेसिंग के लाभ
यह टूल पूरी तरह से आपके ब्राउज़र में चलता है। इसका मतलब है कि जब आप JSON फ़ाइल अपलोड करते हैं, तो वह कहीं भी सर्वर पर नहीं भेजी जाती। यह उन स्थितियों में विशेष रूप से उपयोगी है:
- गोपनीयता: डेटा स्थानीय रहता है, कोई तीसरा पक्ष उसे नहीं देख सकता
- गति: कोई नेटवर्क विलंब नहीं; रूपांतरण तुरंत होता है
- विश्वसनीयता: इंटरनेट कनेक्शन की आवश्यकता नहीं (एक बार पृष्ठ लोड हो जाने के बाद)
- डेटा सुरक्षा: संवेदनशील डेटा (ग्राहक जानकारी, वित्तीय डेटा, मेडिकल रिकॉर्ड) कभी भी इंटरनेट पर नहीं जाता
यह उन कंपनियों और संगठनों के लिए महत्वपूर्ण है जो डेटा गोपनीयता नियमों (जैसे GDPR, HIPAA) का पालन करते हैं। जब आप JSON को CSV में बदलते हैं, तो आप निश्चिंत हो सकते हैं कि आपका डेटा सुरक्षित है।
सामान्य गलतियाँ और उनसे बचने के उपाय
1. नेस्टेड डेटा के साथ तालिका-आकार की समस्या
यदि आपका JSON इस प्रकार है:
{
"users": [
{"name": "रवि", "age": 30},
{"name": "सीता", "age": 25}
]
}
यह तालिका-आकार नहीं है, क्योंकि शीर्ष स्तर पर एक ऑब्जेक्ट है, ऐरे नहीं। आपको पहले users ऐरे को निकालना होगा, या इस संरचना को [{"name": "रवि", "age": 30}, {"name": "सीता", "age": 25}] में बदलना होगा।
2. असमान आंतरिक संरचना
यदि JSON इस प्रकार है:
[
{"a": 1, "b": 2},
{"a": 3, "c": 4}
]
तो CSV में कॉलम a, b, c होंगे, और पहली पंक्ति में b के लिए 2, तथा दूसरी पंक्ति में c के लिए 4 होगा। जहाँ कोई मान नहीं है, वहाँ खाली रहेगा।
3. लीडिंग जीरो का खो जाना
यदि JSON में पिनकोड संख्या के रूप में संग्रहीत है (110001), तो CSV में भी वह ठीक रहेगा। लेकिन यदि पिनकोड 005001 है और JSON में वह स्ट्रिंग "005001" के बजाय संख्या 5001 के रूप में है, तो CSV में वह 5001 दिखेगा। समाधान: JSON में पिनकोड, फ़ोन नंबर आदि को स्ट्रिंग के रूप में रखें।
4. बड़ी फ़ाइलों का प्रबंधन
फ़ाइल आकार, पंक्तियों और कॉलमों की सीमाएँ हैं। यदि आपकी फ़ाइल बहुत बड़ी है, तो आपको पहले डेटा को छोटे भागों में विभाजित करना पड़ सकता है, या केवल आवश्यक फ़ील्ड रखने के लिए JSON को पहले फ़िल्टर करना पड़ सकता है।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
1. क्या मैं एक से अधिक JSON फ़ाइलों को एक CSV में बदल सकता हूँ?
नहीं, यह टूल एक समय में केवल एक फ़ाइल स्वीकार करता है। आपको "Choose one file first." त्रुटि मिल सकती है। यदि आपको कई JSON को एक CSV में मर्ज करना है, तो पहले उन्हें एक एकल JSON ऐरे में मिलाएँ और फिर कन्वर्ट करें।
2. क्या JSON से CSV में बदलने पर बूलियन मान संरक्षित रहते हैं?
नहीं, बूलियन true और false CSV में स्ट्रिंग "true" और "false" बन जाते हैं। जब आप इस CSV को किसी स्प्रेडशीट में खोलते हैं, तो अधिकांश प्रोग्राम इन्हें स्ट्रिंग के रूप में ही रखेंगे, बूलियन के रूप में नहीं। यदि आपको वापस JSON में कन्वर्ट करना है, तो आपको मैन्युअल रूप से प्रकार बदलने होंगे।
3. अगर मेरी CSV फ़ाइल Excel में सही ढंग से नहीं खुलती तो क्या करूँ?
सबसे पहले जाँचें कि आपने सही विभाजक चुना है। यदि आप कॉमा विभाजक का उपयोग कर रहे हैं लेकिन आपके Excel का स्थानीय संस्करण सेमीकोलन की अपेक्षा करता है (जैसे जर्मन Excel), तो CSV स्तंभों में विभाजित नहीं होगी। आप या तो विभाजक बदल सकते हैं, या Excel में डेटा > टेक्स्ट टू कॉलम्स का उपयोग कर सकते हैं।
4. क्या मैं JSON में मौजूद सभी नेस्टिंग को CSV में सुरक्षित रख सकता हूँ?
नहीं, CSV सपाट होता है, इसमें कोई नेस्टिंग नहीं हो सकती। डॉट-पाथ नोटेशन केवल एक नामकरण सम्मेलन है, वास्तविक नेस्टिंग नहीं। जब आप CSV को वापस JSON में बदलेंगे, तो आपको मैन्युअल रूप से डॉट-पाथ को ऑब्जेक्ट्स में पुनर्संरचित करना होगा।
5. क्या टूल बड़ी JSON फ़ाइलों को संभाल सकता है?
हाँ, लेकिन एक फ़ाइल आकार सीमा है। यदि फ़ाइल बहुत बड़ी है, तो आपको "This file is too large. Use a file under ‹max›." त्रुटि मिलेगी। यह सीमा आपके ब्राउज़र की मेमोरी पर निर्भर करती है, क्योंकि सारा प्रसंस्करण क्लाइंट-साइड होता है। बहुत बड़ी फ़ाइलों के लिए, पहले डेटा को छोटे भागों में विभाजित करना उपयोगी हो सकता है।
6. क्या JSON में एरे के अंदर ऐरे संभाला जाता है?
हाँ, यदि JSON एक ऐरे की ऐरे है (जैसे [,]), तो प्रत्येक आंतरिक ऐरे एक CSV पंक्ति बन जाती है, और उसके तत्व क्रमशः कॉलम बन जाते हैं। लेकिन कॉलम हेडर नहीं होंगे — केवल मान होंगे।