झटपट जवाब
अपना JSON बॉक्स में पेस्ट करें (या .json फ़ाइल खोलें) और XML तुरंत दिख जाता है। Objects nested elements बन जाते हैं, हर array item अपनी key के नाम वाला element दोहराता है, @ से शुरू होने वाली keys attributes बन जाती हैं और #text element का टेक्स्ट बन जाता है। जो नाम XML में वैध नहीं हैं वे अपने-आप ठीक किए जाते हैं और खास अक्षर escape किए जाते हैं, इसलिए आप तुरंत एक well-formed .xml फ़ाइल कॉपी या डाउनलोड कर सकते हैं।
JSON को XML में क्यों बदलें?
आधुनिक वेब API JSON में बात करते हैं, लेकिन बिज़नेस की दुनिया का बड़ा हिस्सा अब भी XML पर चलता है: SOAP वेब सर्विस, बैंकिंग और पेमेंट मैसेज, ई-इनवॉइसिंग और सरकारी पोर्टल, ERP और अकाउंटिंग import, प्रोडक्ट फ़ीड, RSS, sitemaps, Office दस्तावेज़ और Android resources। जब किसी JSON API, NoSQL डेटाबेस या JavaScript ऐप का डेटा इनमें से किसी सिस्टम तक पहुँचाना हो, तो उसे बदलना पड़ता है।
यह JSON से XML कन्वर्टर (JSON to XML) यह काम आपके ब्राउज़र में तुरंत करता है। यह बड़े पैमाने पर इस्तेमाल होने वाले नियम अपनाता है — arrays दोहराए गए elements बनती हैं, @ keys attributes बनती हैं और #text element का टेक्स्ट बनता है — और अमान्य नाम ठीक करके और खास अक्षर escape करके well-formed आउटपुट की गारंटी देता है। कोई अपलोड नहीं, साइन-अप की ज़रूरत नहीं और इस्तेमाल पर कोई लिमिट नहीं।
इसे कैसे इस्तेमाल करें
- बॉक्स में JSON पेस्ट करें या .json फ़ाइल लोड करने के लिए Open file दबाएँ। Attributes और arrays कैसे काम करते हैं, यह दिखाने के लिए एक सैंपल पहले से लोड है।
- स्टेटस लाइन देखें: यह पुष्टि करती है कि JSON वैध है या parser का सटीक error दिखाती है।
- Root element सेट करें (तब इस्तेमाल होता है जब JSON में सबसे ऊपर एक अकेली key नहीं होती) और array items का नाम (सबसे ऊपरी स्तर की arrays के लिए)।
- विकल्प चुनें: @/#text handling और pretty printing।
- XML कॉपी या डाउनलोड करें।
JSON, XML में कैसे बदलता है
JSON और XML डेटा को अलग तरह से दर्शाते हैं — JSON में objects, arrays, नंबर, booleans और null होते हैं; XML में elements, attributes और टेक्स्ट। कन्वर्टर ये नियम इस्तेमाल करता है:
| JSON | XML |
|---|---|
{"name": "Asha"} | <name>Asha</name> |
{"marks": [91, 88]} | <marks>91</marks><marks>88</marks> |
{"@id": "b1"} किसी object के अंदर | id="b1" उस element पर attribute |
{"#text": 250} किसी object के अंदर | 250 element के टेक्स्ट के रूप में |
{"city": null} | <city/> |
true, 42 | टेक्स्ट true, 42 |
{"a b": 1} | <a_b>1</a_b> |
Root Element चुनना
किसी XML दस्तावेज़ में ठीक एक root element होना चाहिए। JSON में यह नियम नहीं है, इसलिए कन्वर्टर ऐसे तय करता है:
- एक key वाला object जिसकी वैल्यू एक object है — जैसे
{"catalog": {…}}— उसी key को root बनाता है:<catalog>…</catalog>। जो JSON खुद XML से बदला गया था, उसके लिए यह सबसे स्वाभाविक नतीजा है। - कोई भी दूसरा object आपके चुने root नाम में लपेटा जाता है (डिफ़ॉल्ट
root)। [{…}, {…}]जैसी सबसे ऊपरी स्तर की array बन जाती है<root><item>…</item><item>…</item></root>, और दोनों नाम बदले जा सकते हैं — जैसेstudentsऔरstudent।
Attributes और टेक्स्ट: @ और #text नियम
XML वैल्यू को attributes (<book id="b1">) या child elements के रूप में सेव कर सकता है। JSON में attributes नहीं होते, इसलिए एक आम नियम — जिसे कई लाइब्रेरी और हमारा XML से JSON कन्वर्टर भी इस्तेमाल करते हैं — उन्हें @ से चिह्नित करता है। इसी तरह, जब किसी element में attributes भी हों, तब #text उसका अपना टेक्स्ट रखता है:
{"price": {"@currency": "INR", "#text": 250}}
→ <price currency="INR">250</price>
क्योंकि दोनों कन्वर्टर एक जैसे नियम इस्तेमाल करते हैं, आप XML को JSON में बदल सकते हैं, कोड में एडिट कर सकते हैं, और फिर उसे बराबर XML में वापस बदल सकते हैं। अगर आपके JSON में सच में @ या # से शुरू होने वाली keys हैं और आप उन्हें सामान्य elements के रूप में चाहते हैं, तो विकल्प अनटिक करें: तब वे _id-स्टाइल element नाम बन जाती हैं।
हल किया गया उदाहरण
यह रहा एक आम API-स्टाइल response और डिफ़ॉल्ट सेटिंग्स के साथ कन्वर्टर क्या बनाता है:
{"orders": {"@count": 2, "order": [
{"@id": "101", "customer": "Asha", "items": ["Pen", "Notebook"], "total": 55},
{"@id": "102", "customer": "Rohit", "items": ["Bag"], "total": 399, "coupon": null}
]}}
<orders count="2">
<order id="101">
<customer>Asha</customer>
<items>Pen</items>
<items>Notebook</items>
<total>55</total>
</order>
<order id="102">
…
<coupon/>
</order>
</orders>
ध्यान दें कि सबसे ऊपर की अकेली key orders root बन गई, @count और @id keys attributes बन गईं, order array ने हर ऑर्डर के लिए एक element बनाया, items array ने अपना element दोहराया, और null एक खाली <coupon/> बन गया। अगर कोई प्राप्त करने वाला सिस्टम इसके बजाय <items><item>Pen</item>…</items> चाहता है, तो कन्वर्ट करने से पहले JSON को "items": {"item": ["Pen", "Notebook"]} में बदलें — कन्वर्टर ढाँचे का बिल्कुल पालन करेगा।
किसी भी डिवाइस पर काम करता है
आपको बस Windows, macOS, Linux, Android या iPhone पर एक आधुनिक ब्राउज़र चाहिए। कुछ भी इंस्टॉल नहीं होता, और क्योंकि कन्वर्टर बिना किसी बाहरी लाइब्रेरी के सादा JavaScript है, इसलिए पेज लोड होने के बाद इंटरनेट कनेक्शन टूटने पर भी काम करता रहता है।
हर नाम को वैध बनाना
JSON keys कोई भी string हो सकती हैं — “first name”, “2026”, “price(₹)”, यहाँ तक कि खाली string भी। XML element और attribute नामों में स्पेस या ज़्यादातर चिह्न नहीं हो सकते, ये अंक से शुरू नहीं हो सकते, और “xml” से शुरू नहीं होने चाहिए। कन्वर्टर नामों को अपने-आप साफ़ करता है: स्पेस और चिह्न underscore बन जाते हैं, अंक या “xml” से शुरू होने वाले नामों के आगे underscore जुड़ जाता है, और खाली नाम item बन जाते हैं। हिंदी जैसे Unicode अक्षरों की अनुमति है और वे रखे जाते हैं। अगर किसी target सिस्टम के लिए सटीक नाम चाहिए, तो पहले अपने JSON में keys के नाम बदलें — XML नाम case-sensitive होते हैं।
Escaping और Well-Formed आउटपुट
वैल्यू escape की जाती हैं ताकि दस्तावेज़ हमेशा पार्स हो: & बन जाता है &, < और > बन जाते हैं < और >, और attributes के अंदर के quotes " बन जाते हैं। XML 1.0 जिन control characters की अनुमति नहीं देता वे हटा दिए जाते हैं। आउटपुट UTF-8 बताने वाले XML declaration से शुरू होता है, इसलिए हिंदी, emoji और हर दूसरी लिपि सुरक्षित रहती है।
आम उपयोग
- API को पुराने सिस्टम से जोड़ना: JSON response लेकर वह XML बनाएँ जो कोई SOAP सर्विस, बैंक इंटरफ़ेस या ERP चाहता है।
- फ़ीड और syndication: JSON एक्सपोर्ट से XML में प्रोडक्ट या content फ़ीड बनाएँ।
- कॉन्फ़िगरेशन: JSON settings को Java, .NET या Android प्रोजेक्ट के लिए XML कॉन्फ़िगरेशन फ़ाइलों में बदलें।
- टेस्टिंग और mocking: JSON test डेटा से XML fixtures बनाएँ।
- डेटा migration: NoSQL डेटाबेस से records को XML-आधारित import फ़ॉर्मेट में ले जाएँ।
- सीखना: साथ-साथ देखें कि JSON ढाँचे XML tree में कैसे बदलते हैं।
JSON बनाम XML
| JSON | XML | |
|---|---|---|
| Syntax | Braces, brackets, key–value जोड़े | Opening और closing tags |
| डेटा टाइप | String, number, boolean, null, array, object | सिर्फ़ टेक्स्ट (types schemas से आते हैं) |
| Attributes | नहीं | हाँ |
| कमेंट | नहीं | हाँ |
| साइज़ | छोटा | बड़ा |
| Validation | JSON Schema | XSD, DTD |
| आम तौर पर कहाँ | वेब API, ऐप्स | एंटरप्राइज़, दस्तावेज़, फ़ीड |
क्योंकि XML सब कुछ टेक्स्ट के रूप में सेव करता है, नंबर और booleans अपने टेक्स्ट रूप (42, true) में बदल जाते हैं। अगर प्राप्त करने वाले सिस्टम को types चाहिए, तो वह आमतौर पर उन्हें XML schema से लेता है।
अमान्य JSON ठीक करना
कन्वर्टर ब्राउज़र का सख्त JSON parser इस्तेमाल करता है, इसलिए आम गलतियाँ तुरंत मैसेज में जगह के साथ बताई जाती हैं: double quotes की जगह single quotes, आखिरी item के बाद बचा कॉमा, बिना quotes वाली keys, comments, या छूटा हुआ bracket। दिक्कत को पकड़कर ठीक करने के लिए JSON को हमारे JSON फ़ॉर्मेटर में पेस्ट करें, फिर कन्वर्ट करने के लिए वापस आएँ।
Namespaces और Schemas का क्या?
कुछ फ़ॉर्मेट को XML namespaces चाहिए (जैसे root पर xmlns="…") या उन्हें XSD schema के अनुसार validate होना ज़रूरी होता है। आप root object पर "@xmlns": "http://example.com/schema" जैसी attribute key रखकर namespace declaration जोड़ सकते हैं, और यह बिल्कुल xmlns के रूप में लिखा जाएगा — “xml” से शुरू होने वाला यही एक नाम है जिसे जाने दिया जाता है, क्योंकि यह एक वैध namespace declaration है। ns:item जैसे prefix वाले नाम सपोर्ट नहीं होते क्योंकि colon बदल दिया जाता है, इसलिए ज़्यादा namespaces वाले फ़ॉर्मेट के लिए पहले कन्वर्ट करें और फिर एडिटर में prefixes जोड़ें। Schema के अनुसार validate करने के लिए, कन्वर्ट करने के बाद अपने target सिस्टम के दिए टूल्स इस्तेमाल करें।
बड़ी फ़ाइलें
50 MB तक की फ़ाइलें खोली जा सकती हैं। पेज को तेज़ रखने के लिए आउटपुट बॉक्स पहले 200,000 अक्षर दिखाता है, लेकिन Copy और Download में हमेशा पूरा XML होता है। गहराई से nested या बहुत बड़े दस्तावेज़ लैपटॉप या डेस्कटॉप ब्राउज़र पर सबसे अच्छे से संभलते हैं, जिनमें फ़ोन से ज़्यादा मेमोरी होती है।
साफ़ नतीजों के लिए टिप्स
- Root और record के नाम पर पूरा नियंत्रण रखने के लिए अपने डेटा को एक नाम वाली key में लपेटें —
{"orders": {"order": [...]}}। - Arrays के लिए बहुवचन/एकवचन जोड़े इस्तेमाल करें: array की key दोहराया जाने वाला element बनती है, इसलिए उसका नाम एकवचन (
order) रखें, बहुवचन parent (orders) के अंदर। - Compact और खोजने लायक XML के लिए ID को @attributes के रूप में रखें।
- जब फ़ाइल सीधे किसी दूसरे प्रोग्राम में जाए तो जगह बचाने के लिए pretty print बंद करें; जब लोगों को XML पढ़ना या जाँचना हो तो इसे चालू रखें।
निजता
API responses में अक्सर निजी या बिज़नेस डेटा होता है। यह कन्वर्टर सादे JavaScript के साथ पूरी तरह आपके ब्राउज़र में चलता है — कोई लाइब्रेरी नहीं, कोई सर्वर नहीं, कोई अपलोड नहीं, और टैब बंद करने के बाद कुछ भी स्टोर नहीं रहता।
संक्षिप्त शब्दावली
- Element:
<city>Patna</city>जैसा XML tag का जोड़ा। - Attribute: start tag के अंदर name=“value” जोड़ा।
- Root element: वह एक बाहरी element जिसमें पूरा दस्तावेज़ होता है।
- Well-formed: ऐसा XML जो syntax के नियमों का पालन करता है ताकि कोई भी parser उसे पढ़ सके।
यह कन्वर्टर क्यों इस्तेमाल करें?
यह साफ़, पहले से समझ आने वाले नियमों के साथ arrays, attributes और text nodes संभालता है, हमेशा वैध XML बनाता है, लोड होने के बाद ऑफ़लाइन काम करता है और आपका डेटा निजी रखता है — मुफ़्त। मिलते-जुलते टूल्स: XML से JSON, JSON से CSV और CSV से XML।
JSON से XML कन्वर्टर — मुख्य तथ्य
| इनपुट | JSON टेक्स्ट या .json फ़ाइल |
|---|---|
| आउटपुट | UTF-8 XML |
| Arrays | दोहराए गए elements |
| Attributes | @ से शुरू होने वाली keys |
| Text nodes | #text key |
| निजता | आपके ब्राउज़र में चलता है |
अक्सर पूछे जाने वाले सवाल
मैं JSON को XML में कैसे बदलूँ?
JSON को बॉक्स में पेस्ट करें या .json फ़ाइल खोलें। टाइप करते ही XML बनता जाता है; उसे कॉपी करें या .xml फ़ाइल के रूप में डाउनलोड करें।
JSON arrays कैसे बदले जाते हैं?
Array का हर item, array की key के नाम वाला एक दोहराया गया element बन जाता है। उदाहरण के लिए "marks": [91, 88] बन जाता है
मैं JSON से XML attributes कैसे बनाऊँ?
Key को @ से शुरू करें। {"book": {"@id": "b1", "title": "Godan"}} बन जाता है
#text क्या करता है?
#text key element का अपना टेक्स्ट सेट करती है, इसलिए {"price": {"@currency": "INR", "#text": 250}} बन जाता है
Root element क्या बनता है?
अगर JSON एक ही key वाला object है, तो वही key root बन जाती है। नहीं तो सब कुछ आपके चुने root नाम में लपेटा जाता है (डिफ़ॉल्ट root)।
जो keys वैध XML नाम नहीं हैं, उनका क्या होता है?
स्पेस और चिह्न underscore बन जाते हैं, और अंक या ‘xml’ से शुरू होने वाले नामों के आगे underscore जुड़ जाता है, इसलिए XML हमेशा वैध रहता है।
null को कैसे संभाला जाता है?
null एक खाली element बन जाता है, जैसे
क्या खास अक्षर escape किए जाते हैं?
हाँ। &, <, > और quotes को entities में बदल दिया जाता है, और अमान्य control characters हटा दिए जाते हैं।
अगर मेरा JSON अमान्य हो तो?
टूल JSON parser का error मैसेज दिखाता है ताकि आप दिक्कत ढूँढ सकें। हमारा JSON फ़ॉर्मेटर इसे ठीक करने में मदद कर सकता है।
क्या मेरी फ़ाइलें अपलोड होती हैं?
नहीं। कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है।
क्या मैं XML को वापस JSON में बदल सकता हूँ?
हाँ — हमारा XML से JSON कन्वर्टर इस्तेमाल करें, जो वही @attribute और #text नियम अपनाता है, इसलिए डेटा round-trip हो सकता है।
क्या यह मुफ़्त है?
हाँ, पूरी तरह मुफ़्त, साइन-अप की ज़रूरत नहीं।
JSON से XML, तुरंत!
Attributes, arrays और वैध नाम — मुफ़्त और निजी।
Prompt Minds के और टूल्स देखें
JSON से XML कन्वर्टर हमारे दूसरे मुफ़्त टूल्स के साथ बढ़िया काम करता है। Prompt Minds का हर टूल पूरी तरह आपके ब्राउज़र में चलता है — साइन-अप की ज़रूरत नहीं, कोई अपलोड नहीं, कोई वॉटरमार्क नहीं। सभी मुफ़्त टूल्स देखें।
