आपके डिवाइस पर चलता है · आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती।
.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 पंक्तियाँ दिखती हैं, और कुछ भी डिवाइस से बाहर नहीं जाता।
इनके लिए नहीं: बिना किसी लिस्ट वाला गहरा नेस्टेड अकेला ऑब्जेक्ट — बदल तो जाता है, पर टेबल की जगह एक बहुत चौड़ी पंक्ति बनता है।
अगर सबसे ऊपर लिस्ट है, तो वही पंक्तियाँ है। वरना टूल दस्तावेज़ में आठ स्तर की गहराई तक ऑब्जेक्ट की सबसे लंबी लिस्ट ढूँढ़ता है। इसलिए {"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 बना देता।
लिस्टों की लिस्ट एक स्तर तक खोली जाती है: "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 जैसी सादी संख्याएँ जैसी हैं वैसी रहती हैं।
यह पेज अन्य भाषाओं में: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা