JSON, YAML, CSV: कब कौन सा उपयोग करें और कैसे कनवर्ट करें
आप एक डेटासेट डाउनलोड करते हैं और वह CSV में है। आपका API JSON लौटाता है। आपकी कॉन्फ़िगरेशन फ़ाइल YAML में है। एक सहकर्मी आपको JSON फ़ाइल भेजता है और स्प्रेडशीट के रूप में मांगता है। एक अन्य सहकर्मी आपको YAML कॉन्फ़िग देता है और आपको किसी अन्य टूल के लिए JSON चाहिए।
डेटा फ़ॉर्मेट कनवर्ज़न उन कार्यों में से एक है जो तब तक तुच्छ लगता है जब तक आप वास्तव में ऐसा नहीं कर रहे होते। यह समझना कि कब कौन सा फ़ॉर्मेट उपयोग करना है, और उनके बीच कैसे स्थानांतरित करना है, वास्तविक समय बचाता है।
तीन फ़ॉर्मेट एक नज़र में
JSON (JavaScript Object Notation)
{
"name": "Alice",
"age": 30,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Berlin",
"country": "Germany"
}
}
यह क्या है: संरचित डेटा के लिए एक टेक्स्ट फ़ॉर्मेट जो ऑब्जेक्ट (कुंजी-मूल्य जोड़े), ऐरे (क्रमबद्ध सूचियां), स्ट्रिंग, संख्याएं, बूलियन और null का समर्थन करता है।
ताकतें: मशीन-पठनीय, हर प्रोग्रामिंग भाषा में व्यापक रूप से समर्थित, नेस्टेड डेटा को स्वाभाविक रूप से संभालता है, सख्त सिंटैक्स अस्पष्टता रोकता है।
कमजोरियां: वर्बोज़ (बहुत सारे ब्रेसिज़, ब्रैकेट और कोट्स), YAML जितना मानव-पठनीय नहीं, टिप्पणियों के लिए कोई समर्थन नहीं।
YAML (YAML Ain't Markup Language)
name: Alice
age: 30
skills:
- Python
- SQL
- Docker
address:
city: Berlin
country: Germany
यह क्या है: एक मानव-अनुकूल डेटा सीरियलाइज़ेशन फ़ॉर्मेट जो ब्रेसिज़ और ब्रैकेट के बजाय इंडेंटेशन का उपयोग करता है। यह JSON का सुपरसेट है, अर्थात वैध JSON भी वैध YAML है।
ताकतें: अत्यंत पठनीय, टिप्पणियों का समर्थन करता है, कम दृश्य शोर, कॉन्फ़िगरेशन फ़ाइलों के लिए उत्कृष्ट।
कमजोरियां: इंडेंटेशन-संवेदनशील (गलत स्पेसिंग से टूट सकता है), कुछ आश्चर्यजनक पार्सिंग व्यवहार, JSON की तुलना में पार्स करना धीमा।
CSV (Comma-Separated Values)
name,age,city,country
Alice,30,Berlin,Germany
Bob,25,London,UK
Charlie,35,Paris,France
यह क्या है: एक सपाट टेक्स्ट फ़ॉर्मेट जहां प्रत्येक पंक्ति एक पंक्ति है और एक पंक्ति के भीतर मान कॉमा (या कभी-कभी सेमीकोलन या टैब) द्वारा अलग किए जाते हैं।
ताकतें: सार्वभौमिक (हर स्प्रेडशीट, डेटाबेस और डेटा टूल इसका समर्थन करता है), सारणीबद्ध डेटा के लिए कॉम्पैक्ट, पढ़ने और बनाने में आसान।
कमजोरियां: नेस्टेड डेटा के लिए कोई समर्थन नहीं, कोई डेटा प्रकार नहीं (सब कुछ एक स्ट्रिंग है), विशेष वर्णों के लिए कोई मानक नहीं, सपाट तालिकाओं तक सीमित।
क्या आप जानते हैं? YAML तकनीकी रूप से JSON का सुपरसेट है। इसका मतलब है कि कोई भी वैध JSON दस्तावेज़ स्वचालित रूप से एक वैध YAML दस्तावेज़ है। आप YAML पार्सर में JSON पेस्ट कर सकते हैं और यह काम करेगा। विपरीत सत्य नहीं है — YAML की विशेषताओं (टिप्पणियां, एंकर, बहु-पंक्ति स्ट्रिंग) का कोई JSON समकक्ष नहीं है।
कब कौन सा उपयोग करें
| उपयोग मामला | सर्वश्रेष्ठ फ़ॉर्मेट | क्यों |
|---|---|---|
| API अनुरोध और प्रतिक्रियाएं | JSON | उद्योग मानक, हर भाषा में मूल समर्थन |
| कॉन्फ़िगरेशन फ़ाइलें | YAML | मानव-पठनीय, दस्तावेज़ीकरण के लिए टिप्पणियों का समर्थन |
| स्प्रेडशीट डेटा | CSV | सीधे Excel, Google Sheets आदि में खुलता है |
| डेटाबेस निर्यात | CSV | सपाट सारणीबद्ध डेटा सीधे पंक्तियों और स्तंभों में मैप होता है |
| जटिल नेस्टेड डेटा | JSON या YAML | CSV नेस्टिंग का प्रतिनिधित्व नहीं कर सकता |
| सिस्टम के बीच डेटा आदान-प्रदान | JSON | अस्पष्ट पार्सिंग, सख्त विनिर्देश |
| मानव-संपादित कॉन्फ़िग | YAML | हाथ से पढ़ना और संपादित करना आसान |
| सरल डेटा सूचियां | CSV | हल्का, कोई ओवरहेड नहीं |
फ़ॉर्मेट के बीच कनवर्ट करना
JSON से YAML
यह सबसे आम कॉन्फ़िगरेशन कनवर्ज़न है। आपके पास एक टूल से JSON कॉन्फ़िग है और दूसरे के लिए YAML चाहिए। कनवर्ज़न सीधा है क्योंकि YAML JSON की हर चीज़ का समर्थन करता है।
{"server": {"host": "0.0.0.0", "port": 8080}}
बन जाता है:
server:
host: 0.0.0.0
port: 8080
YAML से JSON
YAML से JSON में जाना भी सरल है, लेकिन आप टिप्पणियां खो देते हैं (JSON उनका समर्थन नहीं करता) और परिणाम अधिक वर्बोज़ होता है।
JSON से CSV
यह सपाट JSON ऐरे (समान कुंजियों वाली ऑब्जेक्ट ऐरे) के लिए अच्छी तरह काम करता है। प्रत्येक ऑब्जेक्ट एक पंक्ति बन जाता है, और प्रत्येक कुंजी एक कॉलम हेडर बन जाती है।
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
बन जाता है:
name,age
Alice,30
Bob,25
चेतावनी JSON-से-CSV कनवर्ज़न तब विफल हो जाता है जब JSON में नेस्टेड ऑब्जेक्ट या ऐरे होते हैं। CSV सपाट है — इसके पास "skills" ऐरे या नेस्टेड "address" ऑब्जेक्ट का प्रतिनिधित्व करने का कोई तरीका नहीं है। नेस्टेड डेटा को या तो फ़्लैट किया जाना चाहिए (address.city, address.country अलग कॉलम के रूप में) या CSV सेल के भीतर स्ट्रिंग के रूप में सीरियलाइज़ किया जाना चाहिए।
CSV से JSON
प्रत्येक पंक्ति एक ऑब्जेक्ट बन जाती है, कॉलम हेडर कुंजियों के रूप में। सरल सारणीबद्ध डेटा के लिए यह स्वच्छ है।
CSV से YAML
कम सामान्य, लेकिन समान तर्क का पालन करता है: प्रत्येक पंक्ति एक YAML मैपिंग बन जाती है, और पूरी फ़ाइल एक YAML सीक्वेंस बन जाती है।
सामान्य खतरे
CSV एन्कोडिंग समस्याएं
CSV फ़ाइलें विभिन्न वर्ण एन्कोडिंग (UTF-8, Latin-1, Windows-1252) का उपयोग कर सकती हैं। यदि आप CSV खोलते हैं और "München" के बजाय "München" जैसे विकृत वर्ण देखते हैं, तो यह एन्कोडिंग बेमेल है। जब संभव हो UTF-8 का उपयोग करें।
CSV डेलिमिटर भ्रम
सभी CSV कॉमा का उपयोग नहीं करते। यूरोपीय CSV अक्सर सेमीकोलन का उपयोग करते हैं क्योंकि कई यूरोपीय संख्या फ़ॉर्मेट में कॉमा दशमलव विभाजक के रूप में उपयोग किया जाता है। टैब-पृथक मान (TSV) एक और सामान्य भिन्नता है।
YAML इंडेंटेशन त्रुटियां
YAML संरचना को परिभाषित करने के लिए इंडेंटेशन (स्पेस, कभी टैब नहीं) का उपयोग करता है। असंगत इंडेंट, या टैब और स्पेस मिलाना, पार्सिंग त्रुटियां या मूक गलत व्याख्या उत्पन्न करता है। प्रति इंडेंट स्तर ठीक 2 स्पेस का उपयोग करें और अपने एडिटर को टैब के बजाय स्पेस डालने के लिए कॉन्फ़िगर करें।
चेतावनी YAML में, स्ट्रिंग no को बूलियन false के रूप में पार्स किया जाता है, और yes को true के रूप में पार्स किया जाता है। स्ट्रिंग 1.0 को एक संख्या के रूप में पार्स किया जाता है। यदि आपका मतलब शाब्दिक स्ट्रिंग "no," "yes," या "1.0" है, तो आपको उन्हें कोट करना होगा: "no", "yes", "1.0"। यह YAML की सबसे कुख्यात गड़बड़ियों में से एक है।
JSON ट्रेलिंग कॉमा
JSON ट्रेलिंग कॉमा की अनुमति नहीं देता। यह JavaScript में वैध है लेकिन JSON में अमान्य:
{"name": "Alice", "age": 30,} // अमान्य JSON: ट्रेलिंग कॉमा
बड़ी फ़ाइल प्रदर्शन
बहुत बड़े डेटासेट (लाखों पंक्तियां) के लिए, CSV JSON या YAML से अधिक कुशल है क्योंकि इसमें प्रति रिकॉर्ड न्यूनतम ओवरहेड होता है। JSON प्रत्येक मान के लिए ब्रेसिज़ और कोट्स जोड़ता है, जो बड़े सारणीबद्ध डेटा के लिए फ़ाइल आकार में काफी वृद्धि करता है।
कनवर्ज़न के लिए व्यावहारिक टूल्स
त्वरित, एकबारगी कनवर्ज़न के लिए, browser-आधारित टूल्स सबसे तेज़ विकल्प हैं। आप अपना डेटा पेस्ट या अपलोड करते हैं, लक्ष्य फ़ॉर्मेट चुनते हैं, और तुरंत परिणाम प्राप्त करते हैं।
सुझाव JSON, YAML, और CSV फ़ॉर्मेट के बीच तुरंत कनवर्ट करें: डेटा फ़ॉर्मेट कैसे कनवर्ट करें। अपना डेटा पेस्ट करें, लक्ष्य फ़ॉर्मेट चुनें, और परिणाम कॉपी या डाउनलोड करें।
विशेष रूप से JSON के साथ काम करने के लिए, एक फ़ॉर्मेटर जो आपके JSON को मान्य और सुंदर-मुद्रित करता है, अमूल्य है:
- JSON Formatter — JSON को मान्य, फ़ॉर्मेट और मिनीफ़ाई करें
- JSON to CSV Converter — JSON ऐरे को CSV में कनवर्ट करें
- YAML-JSON Converter — YAML और JSON के बीच कनवर्ट करें
- CSV Viewer — CSV फ़ाइलें देखें और एक्सप्लोर करें
अपना डेटा अभी कनवर्ट करें:
सभी टूल्स मुफ़्त हैं और सीधे आपके browser में काम करते हैं।