JSON को CSV में बदलें

आपके डिवाइस पर चलता है · आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती।

.json फ़ाइल डालिए या API के जवाब से JSON सीधे पेस्ट कीजिए और ऐसा CSV पाइए जो Excel, Google Sheets या किसी भी इम्पोर्ट स्क्रीन में खुले। सबसे ऊपर की लिस्ट में हर आइटम एक पंक्ति बनता है; वरना दस्तावेज़ में रिकॉर्ड की सबसे लंबी लिस्ट ली जाती है, इसलिए {"results": [...], "count": 2} से हर result की एक पंक्ति बनती है; जिस ऑब्जेक्ट में कोई लिस्ट नहीं, वह एक पंक्ति बनता है।

नियम तय हैं ताकि नतीजा अनुमान लगाने लायक हो: नेस्टेड ऑब्जेक्ट डॉट से अलग कॉलम बनते हैं (address.city), सादे मानों की लिस्ट एक सेल में सेमीकोलन से जुड़ती है, और रिकॉर्ड के भीतर ऑब्जेक्ट की लिस्ट को नंबर वाले कॉलम मिलते हैं (items.0.name)। हेडर पंक्ति में मिली हर key होती है, जिस क्रम में पहली बार दिखी, इसलिए जिन रिकॉर्ड में कोई फ़ील्ड नहीं है उनकी सेल बस खाली रहती है।

CSV RFC 4180 के अनुसार लिखा जाता है — कॉमा, उद्धरण या लाइन ब्रेक वाले फ़ील्ड ठीक से उद्धृत होते हैं — UTF-8 में, वैकल्पिक BOM के साथ ताकि Excel हिन्दी समेत हर लिपि, एक्सेंट और चिह्न सही दिखाए। =, +, - या @ से शुरू होने वाली सेल के आगे एक एपॉस्ट्रॉफ़ी लगती है, ताकि स्प्रेडशीट उसे फ़ॉर्मूले की तरह चलाने के बजाय टेक्स्ट दिखाए। डाउनलोड से पहले पहली 200 पंक्तियाँ दिखती हैं, और कुछ भी डिवाइस से बाहर नहीं जाता।

JSON को CSV में बदलें कैसे करें

  1. JSON फ़ाइल डालिए, या बॉक्स में JSON पेस्ट कीजिए।
  2. आउटपुट का कॉलम विभाजक चुनिए (डिफ़ॉल्ट कॉमा) और Excel का BOM जोड़ना है या नहीं।
  3. "CSV में बदलें" दबाइए और पहली पंक्तियों का पूर्वावलोकन जाँचिए।
  4. .csv डाउनलोड कीजिए।

समर्थित फ़ॉर्मेट और सीमाएँ

इनपुट
JSON (.json) — फ़ाइल या पेस्ट किया टेक्स्ट, UTF-8
आउटपुट
CSV, RFC 4180, UTF-8, CRLF लाइन एंड, वैकल्पिक BOM
नेस्टिंग
ऑब्जेक्ट → डॉट वाले कॉलम; मानों की लिस्ट → ; से जुड़ी
विभाजक
कॉमा, सेमीकोलन, टैब या खड़ी रेखा
कहाँ चलता है
आपके ब्राउज़र में — कोई अपलोड नहीं

इनके लिए नहीं: बिना किसी लिस्ट वाला गहरा नेस्टेड अकेला ऑब्जेक्ट — बदल तो जाता है, पर टेबल की जगह एक बहुत चौड़ी पंक्ति बनता है।

कौन सी लिस्ट पंक्तियाँ बनती है

अगर सबसे ऊपर लिस्ट है, तो वही पंक्तियाँ है। वरना टूल दस्तावेज़ में आठ स्तर की गहराई तक ऑब्जेक्ट की सबसे लंबी लिस्ट ढूँढ़ता है। इसलिए {"response": {"data": {"items": [...]}}} और {"results": [...], "count": 2, "next": null} दोनों में हर आइटम की एक पंक्ति बनती है, और नतीजे के नीचे की पंक्ति बताती है कि कौन सी लिस्ट ली गई, जैसे results। उस लिस्ट के बगल के मान, जैसे count और next, किसी रिकॉर्ड का हिस्सा नहीं हैं, इसलिए छोड़ दिए जाते हैं।

दो बराबर लंबी लिस्ट में से वह चुनी जाती है जो ऊपर के ज़्यादा पास है। कोई छोटी लिस्ट चाहिए तो उसे उसके [ से ] तक कॉपी करके सिर्फ़ वही पेस्ट कीजिए। जिस दस्तावेज़ में ऑब्जेक्ट की कोई लिस्ट नहीं, वह एक पंक्ति बनता है, और एक ही key वाले आवरण पार कर लिए जाते हैं, इसलिए {"order": {"id": 7, "total": 12}} से id और total कॉलम बनते हैं।

मान सेल में कैसे लिखे जाते हैं

टेक्स्ट ठीक वैसा ही कॉपी होता है, तारीख़ें भी, जो JSON में जिस रूप में हैं उसी में रहती हैं, जैसे 2024-01-05T10:00:00Z। true और false शब्दों के रूप में लिखे जाते हैं। null, ख़ाली लिस्ट और ख़ाली ऑब्जेक्ट तीनों ख़ाली सेल बनते हैं, इसलिए CSV में वे उस फ़ील्ड जैसे ही दिखते हैं जो था ही नहीं।

संख्या ठीक वैसी लिखी जाती है जैसी JSON में है: 1.0 वैसा ही 1.0 रहता है, 1e21 वैसा ही 1e21, और 12345678901234567890 जैसी ID बिना उद्धरण चिह्नों के भी अपना हर अंक रखती है। साधारण JSON रीडर उस ID को 12345678901234567000 बना देता।

लिस्ट के भीतर लिस्ट, और पहले से डॉट वाली key

लिस्टों की लिस्ट एक स्तर तक खोली जाती है: "m": [[1, 2], [3]] से m.0 कॉलम बनता है जिसमें 1;2 है, और m.1 कॉलम जिसमें 3 है। जो लिस्ट ऑब्जेक्ट और सादे मान मिलाती है, उसकी हर एंट्री को नंबर मिलता है, इसलिए "x": [{"z": 1}, 2] से x.0.z और x.1 बनते हैं।

कॉलम के नाम key को डॉट से जोड़कर बनते हैं, इसलिए जिस key में पहले से डॉट है, वह किसी नेस्टेड key से टकरा सकती है: {"a.b": 1, "a": {"b": 2}} से a.b दो बार बनता। दूसरे को एक प्रत्यय मिलता है, इसलिए कॉलम a.b और a.b_2 होते हैं और दोनों मान बचे रहते हैं।

विभाजक चुनना, और = से शुरू होने वाली सेल

आम तौर पर कॉमा चुना जाता है। सेमीकोलन उस स्प्रेडशीट के लिए ठीक है जो ऐसी भाषा पर सेट हो जिसमें दशमलव कॉमा से लिखा जाता है, क्योंकि वहाँ कॉमा वाली फ़ाइल अक्सर एक ही कॉलम में खुलती है। टैब और खड़ी रेखा उन सिस्टम के लिए हैं जो इन्हें माँगते हैं। विभाजक कोई भी हो, फ़ाइल का नाम .csv ही होता है।

=, +, - या @ से शुरू होने वाली सेल स्प्रेडशीट के लिए फ़ॉर्मूला है, जिसे वह फ़ाइल खुलते ही चला देगी। ऐसी सेल के आगे एक एपॉस्ट्रॉफ़ी लगती है — वही निशान जिसे स्प्रेडशीट ख़ुद “यह टेक्स्ट है” बताने के लिए इस्तेमाल करती हैं — इसलिए =1+1 को '=1+1 लिखा जाता है। -5 या +3.5 जैसी सादी संख्याएँ जैसी हैं वैसी रहती हैं।

अक्सर पूछे जाने वाले प्रश्न

क्या मेरी फ़ाइल किसी सर्वर पर अपलोड होती है?
नहीं। पूरा काम आपके ब्राउज़र में, आपके अपने डिवाइस की क्षमता से होता है। फ़ाइल आपके कंप्यूटर या फ़ोन से बाहर नहीं जाती, और कोई भी टूल एक बार इस्तेमाल हो जाने के बाद इंटरनेट बंद होने पर भी काम करता रहता है।
नेस्टेड ऑब्जेक्ट और array का क्या होता है?
नेस्टेड ऑब्जेक्ट डॉट वाले कॉलम में खुल जाता है: {"address":{"city":"Jaipur"}} से address.city नाम का कॉलम बनता है। सादे मानों की लिस्ट ("tags": ["a","b"]) एक सेल में a;b लिखी जाती है। रिकॉर्ड के भीतर ऑब्जेक्ट की लिस्ट को items.0.name, items.1.name जैसे नंबर वाले कॉलम मिलते हैं।
मेरा JSON लिस्ट नहीं, ऑब्जेक्ट है — क्या मिलेगा?
उसमें कहीं भी मौजूद रिकॉर्ड की सबसे लंबी लिस्ट पंक्तियाँ बनती है — {"results": [...], "count": 2, "next": null} से हर result की एक पंक्ति — और नतीजे की पंक्ति बताती है कि कौन सी लिस्ट ली गई। उस लिस्ट के बगल के मान किसी रिकॉर्ड का हिस्सा नहीं, इसलिए छोड़ दिए जाते हैं। जिस ऑब्जेक्ट में कोई लिस्ट नहीं, वह एक ही पंक्ति में लिखा जाता है, हर key के लिए एक कॉलम।
Excel में अजीब अक्षर क्यों दिखते हैं, और कैसे ठीक करें?
फ़ाइल की शुरुआत में BOM न हो तो Excel एन्कोडिंग का अंदाज़ा लगाता है। "Excel के लिए BOM जोड़ें" स्विच डिफ़ॉल्ट चालू है और वह तीन बाइट का चिह्न जोड़ता है; जिन टूल को सादा UTF-8 चाहिए उनके लिए इसे बंद कर दीजिए।

संबंधित उपकरण

स्प्रेडशीट और डेटा में और

यह पेज अन्य भाषाओं में: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা