JSON, CSV, YAML और XML के बीच डेटा बदलने पर क्या बदलता है?
चारों फ़ॉर्मेट डेटा को अलग तरह से मॉडल करते हैं: JSON और YAML नेस्टिंग व टाइप रखते हैं, CSV स्ट्रिंग की सपाट तालिका है, और XML एलिमेंट व एट्रिब्यूट में फ़र्क करता है। इसलिए कन्वर्टर को फ़ैसले लेने पड़ते हैं — नेस्टेड ऑब्जेक्ट कॉलम में कैसे सपाट हों, "42" और "true" का टाइप क्या हो, एट्रिब्यूट कहाँ जाएँ — और सही फ़ैसला उस पर निर्भर है जो रिसीविंग सिस्टम अपेक्षित करता है।
XML से JSON कैसे इस्तेमाल करें
- XML डॉक्यूमेंट पेस्ट करें।
- तय करें कि एट्रिब्यूट रखने हैं या नहीं, संख्या/बूलियन पार्स करने हैं या नहीं, और कौन-से एलिमेंट हमेशा ऐरे होने चाहिए।
- JSON कॉपी करें या डाउनलोड करें।
<product> ऑब्जेक्ट बनता है और दो ऐरे; product को "हमेशा-ऐरे एलिमेंट" में सूचीबद्ध करने से हर बार ऐरे मिलता है।एक बार आता है
<catalog> में एक <product>
"product": {
"name": "Keyboard",
"@_id": "p-1"
}
- हमेशा-ऐरे एलिमेंट:
- खाली
- JSON में
product: - ऑब्जेक्ट
दोहराया गया
दो सहोदर <product> एलिमेंट, जैसे उदाहरण में
"product": [
{
"name": "Keyboard",
"@_id": "p-1"
},
{
"name": "Mouse",
"@_id": "p-2"
}
]
- हमेशा-ऐरे एलिमेंट:
- खाली
- JSON में
product: - 2 आइटम का ऐरे
एक बार, ऐरे ज़रूरी किया गया
वही एक <product>, product को "हमेशा-ऐरे एलिमेंट" में सूचीबद्ध करके
"product": [
{
"name": "Keyboard",
"@_id": "p-1"
}
]
- हमेशा-ऐरे एलिमेंट:
product- JSON में
product: - 1 आइटम का ऐरे
हर कोड बॉक्स डिफ़ॉल्ट विकल्पों के साथ उस XML के लिए टूल के अपने आउटपुट में "catalog" के नीचे का हिस्सा है; एट्रिब्यूट id से "@_id" बनता है।
XML से JSON की खूबियाँ
- गड़बड़ XML के लिए लाइन और कॉलम के साथ well-formedness जाँच
- एट्रिब्यूट @_ उपसर्ग के साथ सुरक्षित रहते हैं (या चाहें तो हटा दिए जाते हैं)
- दोहराए गए चाइल्ड ऐरे बनते हैं; किसी भी एलिमेंट नाम के लिए ऐरे ज़रूरी किया जा सकता है
- संख्यात्मक और बूलियन टेक्स्ट वैल्यू का वैकल्पिक कन्वर्ज़न
- CDATA कंटेंट और एंटिटी डिकोड की जाती हैं
- रूट एलिमेंट, एलिमेंट की संख्या और डेप्थ का सारांश
XML से JSON का उदाहरण
एट्रिब्यूट और दोहराए गए एलिमेंट वाला कैटलॉग
इनपुट:
<catalog><product id="p-1"><name>Keyboard</name></product><product id="p-2"><name>Mouse</name></product></catalog>आउटपुट:
{
"catalog": {
"product": [
{ "name": "Keyboard", "@_id": "p-1" },
{ "name": "Mouse", "@_id": "p-2" }
]
}
}XML से JSON के बारे में अक्सर पूछे जाने वाले सवाल
एट्रिब्यूट कैसे दर्शाए जाते हैं?
एट्रिब्यूट @_ उपसर्ग वाली कीज़ बन जाते हैं (जैसे "@_id")। अगर किसी एलिमेंट में एट्रिब्यूट और टेक्स्ट दोनों हों, तो टेक्स्ट "#text" के नीचे रखा जाता है। आप एट्रिब्यूट पूरी तरह हटा भी सकते हैं।
एक एलिमेंट ऑब्जेक्ट और दूसरा ऐरे क्यों बनता है?
दोहराए गए सहोदर एलिमेंट एक ऐरे में इकट्ठे होते हैं; जो एलिमेंट एक ही बार आता है वह ऑब्जेक्ट रहता है। एकसमान ऐरे आकार पाने के लिए एलिमेंट नाम "हमेशा-ऐरे एलिमेंट" में सूचीबद्ध करें।
क्या संख्या और बूलियन बदले जाते हैं?
डिफ़ॉल्ट रूप से 42, 3.5 और true जैसे टेक्स्ट JSON संख्या और बूलियन में बदल जाते हैं। हर वैल्यू को स्ट्रिंग रखने के लिए "Parse numbers & booleans" बंद कर दें (पिन कोड और शुरुआती शून्य वाली ID के लिए उपयोगी)।
CDATA, कमेंट और नेमस्पेस का क्या होता है?
CDATA कंटेंट टेक्स्ट के रूप में शामिल होता है, कमेंट और प्रोसेसिंग इंस्ट्रक्शन हटा दिए जाते हैं, और soap:Body जैसे नेमस्पेस वाले नाम ज्यों के त्यों कीज़ के रूप में रखे जाते हैं।
संदर्भ
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange FormatJSON का व्याकरण: ऑब्जेक्ट, ऐरे, स्ट्रिंग, नंबर, तीन लिटरल और इंटरचेंज एन्कोडिंग के रूप में UTF-8।
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) FilesCSV के आम नियम: कॉमा सेपरेटर, CRLF लाइन एंड, और कॉमा, कोट या लाइन ब्रेक वाले फ़ील्ड की क्वोटिंग।
- YAML Ain't Markup Language (YAML™) version 1.2.2YAML 1.2 का डेटा मॉडल और सिंटैक्स, और JSON से उसका संबंध (हर JSON दस्तावेज़ वैध YAML 1.2 है)।
- Extensible Markup Language (XML) 1.0 (Fifth Edition)XML दस्तावेज़ को वेल-फ़ॉर्म्ड क्या बनाता है: एलिमेंट, एट्रिब्यूट, एंटिटी, कैरेक्टर एन्कोडिंग और प्रोलॉग।