JSON से CSV कन्वर्टर
बाईं ओर ऑब्जेक्ट्स की JSON ऐरे पेस्ट करें, दाईं ओर सही ढंग से कोट किया गया CSV पाएं। हेडर ऑब्जेक्ट कीज़ से बनता है — कोई अपलोड नहीं।
- बाएँ टेक्स्ट एरिया में ऑब्जेक्ट्स की JSON ऐरे पेस्ट करें।
- "CSV में बदलें" पर क्लिक करें। हेडर पंक्ति सभी ऑब्जेक्ट कुंजियों के यूनियन से बनती है।
- परिणाम कॉपी करें या data.csv के रूप में डाउनलोड करें।
- नेस्टेड मानों के लिए फ़ील्ड JSON-स्ट्रिंग में बदल जाती है — फ्लैट कॉलम चाहिए तो पहले स्वयं समतल करें।
यह क्या करता है?
JSON ऑब्जेक्ट ऐरे को RFC 4180 CSV में बदलता है। हेडर पंक्ति सभी ऑब्जेक्ट्स की सभी कुंजियों का यूनियन है। कॉमा, कोट या नई-लाइन वाले मानों को CSV-कोट किया जाता है। संख्याएँ और बूलियन बिना कोट के निकलते हैं; null और undefined खाली फ़ील्ड बन जाते हैं। नेस्टेड मानों (ऑब्जेक्ट, ऐरे) को एक कोटेड JSON-स्ट्रिंग फ़ील्ड में बदल दिया जाता है — CSV पदानुक्रम सीधे नहीं दर्शा सकता।
उदाहरण
JSON इनपुट:
[
{"name":"Ada","age":36,"role":"engineer"},
{"name":"Grace","age":40,"role":"scientist"}
] CSV आउटपुट:
name,age,role
Ada,36,engineer
Grace,40,scientist सामान्य JSON-से-CSV समस्याएँ
CSV एक फ्लैट प्रारूप है। ज़्यादातर "अजीब" आउटपुट उन JSON आकारों से आता है जिनका फ्लैट प्रतिनिधित्व नहीं है।
- टॉप-लेवल ऐरे नहीं है। JSON ऑब्जेक्ट `{"a":1,"b":2}` सीधे CSV नहीं बन सकता — ऐरे में लपेटें: `[{"a":1,"b":2}]`। CSV में एक हेडर पंक्ति और एक डेटा पंक्ति होगी।
- पंक्तियों में भिन्न कुंजियाँ। पहला ऑब्जेक्ट `{a,b}` और दूसरा `{a,c}` हो तो हेडर यूनियन `a,b,c` बनता है। जिनमें कुंजी नहीं उन पंक्तियों में खाली फ़ील्ड आती है। सख़्त स्कीमा चाहिए तो पहले प्री-प्रोसेस करें।
- नेस्टेड मान चुपचाप समतल हो जाते हैं। `{"address":{"city":"NY"}}` जैसा फ़ील्ड एक CSV कॉलम बनता है जिसका मान JSON-स्ट्रिंग `{"city":"NY"}` है। अलग `address.city` कॉलम चाहिए तो JavaScript में पहले समतल करें: `{address_city: row.address.city}`।
- मानों में अंदरूनी न्यूलाइन। JSON मान में बहु-पंक्ति स्ट्रिंग कोटेड CSV फ़ील्ड बनती है जिसके भीतर लिटरल `\n` होते हैं। अधिकांश स्प्रेडशीट ऐप्स ठीक से संभालते हैं; कुछ पुराने टूल नहीं।
- हेडर में विशेष अक्षर। कॉमा, कोट या न्यूलाइन वाली JSON कुंजियाँ काम तो करती हैं पर कुछ CSV उपभोक्ता हेडर पंक्ति को ठीक से पार्स नहीं कर पाते। अधिकतम संगतता चाहिए तो रूपांतरण से पहले कुंजियों को अल्फ़ान्यूमेरिक + अंडरस्कोर तक सीमित रखें।
- JSON में अंतिम कॉमा। `[{"a":1},]` अमान्य JSON है (अंतिम तत्व के बाद कॉमा)। पार्सर इसे CSV चरण से पहले ही अस्वीकार करता है। ज़्यादातर JSON फ़ॉर्मैटर इसे हटा देते हैं — ज़रूरत हो तो पहले `/json-prettifier` से चलाएँ।
अक्सर पूछे जाने वाले प्रश्न
टैब-सेपरेटेड आउटपुट (TSV) कैसे पाऊँ?
यह पेज कॉमा-सेपरेटेड CSV देता है। TSV के लिए परिणाम के `,` को `\t` से बदलें — या कमांड लाइन पर `delimiter: "\t"` के साथ PapaParse चलाएँ। लाइब्रेरी वही है।
क्या हेडर पंक्ति में कुंजियों का क्रम बना रहता है?
हाँ — हेडर पंक्ति उस क्रम में कुंजियाँ रखती है जिसमें वे सभी ऑब्जेक्ट्स में पहली बार दिखती हैं। वर्णक्रमिक चाहिए तो पेस्ट करने से पहले अपने JSON में कुंजियाँ सॉर्ट कर लें।
तारीखें कैसे संभाली जाती हैं?
JSON में नेटिव Date प्रकार नहीं होता — तारीखें आमतौर पर पहले से ही ISO 8601 स्ट्रिंग के रूप में होती हैं। वे ज्यों की त्यों आगे बढ़ जाती हैं। JSON.stringify से Date ऑब्जेक्ट उस समय ही ISO स्ट्रिंग में बदल चुका होता है।
क्या JSON → CSV → JSON राउंड-ट्रिप कर सकता हूँ?
फ्लैट ऐरे-ऑफ़-फ्लैट-ऑब्जेक्ट्स के लिए हाँ। स्ट्रिंग्स स्ट्रिंग्स रहती हैं, संख्याएँ संख्याएँ (PapaParse के डायनामिक टाइपिंग के साथ इम्पोर्ट पर)। नेस्टेड मान CSV चरण में संरचना खो देते हैं और JSON-स्ट्रिंग फ़ील्ड के रूप में लौटते हैं, फिर से नेस्टेड ऑब्जेक्ट के रूप में नहीं।
क्या मेरा JSON अपलोड होता है?
नहीं। सब कुछ आपके ब्राउज़र में चलता है — आपका JSON इस पेज के JavaScript से पार्स और कन्वर्ट होता है, कभी किसी सर्वर पर नहीं भेजा जाता। ब्राउज़र डेवलपर टूल्स में सत्यापित करें।
कितनी बड़ी JSON फ़ाइल बदल सकता हूँ?
लगभग 50 MB तक — उसके बाद ब्राउज़र टेक्स्ट एरिया धीमा होने लगता है। रूपांतरण इनपुट साइज़ के साथ रैखिक है; बॉटलनेक रेंडरिंग है। बड़ी फ़ाइलों के लिए कमांड लाइन पर PapaParse चलाएँ।