JSON से XML कन्वर्टर
बाईं ओर JSON पेस्ट करें, दाईं ओर सही ढंग से बना XML पाएं। @_ से शुरू होने वाली कीज़ एट्रिब्यूट बनती हैं — कोई अपलोड नहीं।
- बाएँ टेक्स्ट एरिया में JSON पेस्ट करें।
- "XML में बदलें" पर क्लिक करें। JSON कुंजियाँ एलिमेंट बनती हैं; @_ कुंजियाँ एट्रिब्यूट बनती हैं।
- फ़ॉर्मेट किए गए XML को कॉपी या डाउनलोड करें।
- अपने डेटा को एक एकल रूट कुंजी से लपेटें — XML को एक टॉप-लेवल एलिमेंट चाहिए।
यह क्या करता है?
fast-xml-parser सम्मेलन का उपयोग करते हुए JSON ऑब्जेक्ट को XML में बदलता है। ऑब्जेक्ट प्रॉपर्टी चाइल्ड एलिमेंट बनती हैं; `@_` प्रीफ़िक्स वाली प्रॉपर्टी पैरेंट पर एट्रिब्यूट बनती हैं; ऐरे एक ही टैग नाम वाले दोहराए गए सिबलिंग एलिमेंट बनते हैं। संख्याएँ, बूलियन और स्ट्रिंग टेक्स्ट सामग्री के रूप में उत्सर्जित होते हैं। आउटपुट पठनीयता के लिए इंडेंट किया जाता है।
उदाहरण
JSON इनपुट:
{
"root": {
"@_version": 1,
"name": "Ada",
"tags": ["math", "logic"]
}
} XML आउटपुट:
<root version="1">
<name>Ada</name>
<tags>math</tags>
<tags>logic</tags>
</root> सामान्य JSON-से-XML समस्याएँ
XML संरचना के बारे में JSON से अधिक सख्त है। नीचे दिए गए पैटर्न ज़्यादातर आश्चर्यजनक आउटपुट को कवर करते हैं।
- एकल रूट नहीं। XML को ठीक एक रूट एलिमेंट चाहिए। टॉप-लेवल पर एकाधिक कुंजियों वाले JSON ऑब्जेक्ट एकाधिक रूट पैदा करते हैं, जो अमान्य XML है। अपने इनपुट को एकल कुंजी में लपेटें: `{"root": {"a":1, "b":2}}`।
- टॉप-लेवल ऐरे। JSON ऐरे `[{"a":1},{"a":2}]` के पास उपयोग करने के लिए कोई रूट एलिमेंट नाम नहीं। इसे लपेटें: `{"items": [{"a":1},{"a":2}]}`। हर ऐरे एंट्री फिर एक `<items>` एलिमेंट बन जाती है।
- स्पेस या प्रतीकों वाले एलिमेंट नाम। XML एलिमेंट नामों में स्पेस नहीं हो सकती, अंक से शुरू नहीं हो सकते, या `:`, `/`, `<` आदि नहीं हो सकते। बदलने से पहले JSON कुंजियाँ साफ करें — स्पेस को `_` से बदलें, अंकों के सामने एक अक्षर लगाएँ।
- एट्रिब्यूट बनाम एलिमेंट। JSON कुंजी `id` चाइल्ड एलिमेंट `<id>1</id>` बन जाती है। इसे एट्रिब्यूट (`<user id="1">`) बनाने के लिए, कुंजी को `@_` के साथ प्रीफ़िक्स करें: `{"user":{"@_id":1}}`। आउटपुट पर प्रीफ़िक्स हटा दिया जाता है।
- null मान। JSON `null` खाली एलिमेंट (`<x/>`) बनता है। यदि आपको इसे पूरी तरह छोड़ना है, तो बदलने से पहले अपने JSON से null मान हटा दें।
- टेक्स्ट में विशेष अक्षर। XML `<`, `>`, `&`, `"`, और `\'` को स्वचालित रूप से एस्केप करता है। आपकी JSON स्ट्रिंग `"<b>hi</b>"` टेक्स्ट `<b>hi</b>` बनती है, नेस्टेड एलिमेंट नहीं। यदि आप वास्तविक नेस्टिंग चाहते हैं तो इंटरमीडिएट JSON संरचना का उपयोग करें।
अक्सर पूछे जाने वाले प्रश्न
मुझे XML घोषणा `<?xml version="1.0"?>` कैसे मिले?
इसे आउटपुट में स्वयं प्रीपेंड करें — कन्वर्टर घोषणा नहीं उत्सर्जित करता। UTF-8 XML के लिए, घोषणा तकनीकी रूप से वैकल्पिक है पर सामान्यतः शामिल होती है: `<?xml version="1.0" encoding="UTF-8"?>` के बाद आपका कन्वर्टेड XML।
क्या JSON ऐरे दोहराए गए एलिमेंट के रूप में सुरक्षित हैं?
हाँ। `{"tags":["a","b"]}` `<tags>a</tags><tags>b</tags>` बन जाता है — एक ही टैग वाले दो सिबलिंग, जो दोहराए गए मान के लिए मानक XML प्रतिनिधित्व है।
क्या मैं XML में JSON-शैली नेस्टेड ऐरे प्राप्त कर सकता हूँ?
सीधे नहीं। XML के पास नेटिव ऐरे अवधारणा नहीं है; केवल दोहराए गए सिबलिंग। JSON में नेस्टेड ऐरे एक चपटी XML संरचना बन जाते हैं जहाँ संदर्भ समूहीकरण निर्धारित करता है। इस टूल के माध्यम से XML → JSON → XML राउंड-ट्रिप राउंड-ट्रिपेबल सबसेट को संरक्षित करता है।
तारीखें कैसे संभाली जाती हैं?
JSON में Date प्रकार नहीं है — तारीखें आमतौर पर पहले से ISO 8601 स्ट्रिंग होती हैं। वे अपरिवर्तित एलिमेंट टेक्स्ट सामग्री बन जाती हैं। यदि आपका XML डाउनस्ट्रीम विशेष तारीख प्रारूप अपेक्षित करता है, तो सुनिश्चित करें कि JSON वह प्रारूप उपयोग करता है।
क्या मेरा JSON अपलोड होता है?
नहीं। सब कुछ आपके ब्राउज़र में चलता है — आपका इनपुट इस पेज के JavaScript द्वारा पार्स और कन्वर्ट होता है और कभी किसी सर्वर पर नहीं भेजा जाता।
क्या JSON → XML → JSON राउंड-ट्रिप मेरे डेटा को सुरक्षित रखेगा?
@_ एट्रिब्यूट सम्मेलन के साथ विशिष्ट संरचित डेटा के लिए, हाँ — अर्थपूर्ण रूप से। कुछ एज केस (मिश्रित टेक्स्ट + चाइल्ड एलिमेंट, एट्रिब्यूट क्रम बनाम एलिमेंट क्रम) सामान्यीकृत हो सकते हैं। यदि सटीक बाइट-तुल्यता मायने रखती है, XML के माध्यम से राउंड-ट्रिप न करें।