CSV से JSON कैसे इस्तेमाल करें
- हेडर पंक्ति सहित CSV या TSV टेक्स्ट पेस्ट करें (या "First row is a header" से टिक हटा दें)।
- डिलिमिटर, टाइप अनुमान और नेस्टिंग के विकल्प समायोजित करें।
- बने हुए JSON ऐरे को कॉपी करें या डाउनलोड करें।
CSV से JSON की खूबियाँ
- RFC 4180 पार्सर: कोट किए फ़ील्ड, भीतर डिलिमिटर, न्यूलाइन और दोहरे कोट्स
- डिलिमिटर की स्वतः पहचान (कॉमा, सेमीकोलन, टैब, पाइप)
- संख्या, बूलियन और null के लिए टाइप अनुमान; खाली सेल चाहें तो null बन सकते हैं
- डॉट वाले हेडर (address.city, tags.0) से नेस्टेड ऑब्जेक्ट और ऐरे फिर से बनाता है
- ग़लत फ़ील्ड संख्या वाली पंक्तियाँ और डुप्लिकेट हेडर बताता है
- इंडेंटेशन या मिनिफ़ाइड आउटपुट का विकल्प
CSV से JSON का उदाहरण
कोट किए फ़ील्ड और नेस्टेड कॉलम
इनपुट:
id,name,address.city,active
1,"Jamil, Sara",Jeddah,trueआउटपुट:
[
{
"id": 1,
"name": "Jamil, Sara",
"address": { "city": "Jeddah" },
"active": true
}
]CSV से JSON के बारे में अक्सर पूछे जाने वाले सवाल
कौन-से डिलिमिटर समर्थित हैं?
कॉमा, सेमीकोलन, टैब और पाइप। स्वतः पहचान वह डिलिमिटर चुनती है जो शुरुआती पंक्तियों में सबसे एकसमान रूप से दिखता है।
क्या कॉमा या न्यूलाइन वाले कोट किए फ़ील्ड संभाले जाते हैं?
हाँ। पार्सर RFC 4180 का पालन करता है: डबल कोट्स में लिपटे फ़ील्ड में डिलिमिटर, लाइन ब्रेक और दोहरे कोट्स ("") हो सकते हैं।
टाइप अनुमान कैसे काम करता है?
जो सेल इंटीजर, दशमलव, true/false या null जैसे दिखते हैं उन्हें उपयुक्त JSON टाइप में बदल दिया जाता है। शुरुआती शून्य वाली संख्याएँ (जैसे 007) स्ट्रिंग ही रहती हैं। सब कुछ टेक्स्ट रखने के लिए अनुमान बंद कर दें।
क्या मैं कॉलम नामों से नेस्टेड ऑब्जेक्ट फिर से बना सकता हूँ?
हाँ। "Nest dotted columns" चालू होने पर address.city या tags.0 जैसे हेडर वापस नेस्टेड ऑब्जेक्ट और ऐरे में बदल दिए जाते हैं।
तकनीकी नोट्स
Parser single-pass state machine है: शुरुआती BOM हटता है, कोट के बाहर \r अनदेखा है (CRLF और LF चलते हैं, सिर्फ़ CR नहीं), और कोट सिर्फ़ फ़ील्ड की शुरुआत में ख़ास है, इसलिए x"y वैसा रहता है। Delimiter detection पहली दस लाइनों पर comma, semicolon, tab और pipe को स्कोर देती है — सबसे ऊँची per-line न्यूनतम गिनती, एक जैसी हो तो दोगुनी। हर cell trim होती है, कोट वाली भी।
Type inference जान-बूझकर सीमित है: सिर्फ़ null/NULL, true/TRUE, false/FALSE, बिना leading zero वाले अधिकतम 15 अंकों के integer, और point के बाद अंक वाले decimal (exponent वैकल्पिक) बदलते हैं — 007, 1e3, +1, 1,000 और 16 अंकों की ID स्ट्रिंग रहती हैं। कोट से inference नहीं रुकती; विकल्प बंद करें। Dotted/bracket header (a.b, x[0]) unflattenJson से दोबारा बनते हैं, numeric segment array बनते हैं; path टकराएँ तो बाद वाला कॉलम जीतता है।