आपके डिवाइस पर चलता है · आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती।
JSON पेस्ट कीजिए या फ़ाइल डालिए और ऊपर डिक्लेरेशन और हर key के लिए एक एलिमेंट वाला XML दस्तावेज़ पाइए। जिस दस्तावेज़ में सबसे ऊपर एक ही key हो, उसमें वही रूट एलिमेंट बनती है; बाक़ी सब कुछ <root> के भीतर जाता है। लिस्ट अपनी key के नाम के दोहराए गए एलिमेंट बनती है — "items": [..] से कई <items> एलिमेंट बनते हैं — और सबसे ऊपर की लिस्ट <root> के भीतर <item> एलिमेंट बनती है।
@ से शुरू होने वाली key एट्रिब्यूट बनती हैं और "#text" key एलिमेंट का टेक्स्ट — यही ढाँचा "XML को JSON में बदलें" टूल लिखता है, इसलिए वहाँ बदला गया दस्तावेज़ यहाँ उसी XML के रूप में लौटता है। बाक़ी हर मान अपने एलिमेंट के भीतर टेक्स्ट है, null खाली एलिमेंट बनता है, और दस्तावेज़ हर स्तर पर दो स्पेस से इंडेंट है। जो key XML नाम के रूप में नहीं चलतीं — अंक से शुरू, स्पेस या चिह्न वाली — उन्हें अंडरस्कोर से साफ़ कर दिया जाता है, ताकि नतीजा हमेशा पार्स हो।
टेक्स्ट सही एस्केप होता है (&, <, > और एट्रिब्यूट में उद्धरण चिह्न और लाइन ब्रेक); कंट्रोल अक्षर, जिन्हें XML 1.0 रख ही नहीं सकता, हटा दिए जाते हैं। एन्कोडिंग UTF-8 है, और डाउनलोड से पहले पहली 200 पंक्तियाँ दिखती हैं। कुछ अपलोड नहीं होता।
इनके लिए नहीं: किसी तय XML स्कीमा (SOAP, RSS, कोई इनवॉइस मानक) से मेल — एलिमेंट के नाम आपकी JSON key से आते हैं, किसी स्कीमा से नहीं।
@ से शुरू होने वाली key एट्रिब्यूट बनती है और "#text" key एलिमेंट का टेक्स्ट, इसलिए {"item": {"@id": 3, "#text": "A"}} से <item id="3">A</item> बनता है। जब दस्तावेज़ में सबसे ऊपर एक ही key हो, तो वही रूट एलिमेंट होती है; वरना सब कुछ <root> के भीतर जाता है।
जो अक्षर XML नाम में नहीं चलता, वह अंडरस्कोर बन जाता है, और जो नाम ऐसे अक्षर से शुरू होता है जो शुरू में नहीं आ सकता, जैसे अंक, उसके आगे एक अंडरस्कोर लगता है: "1st place" बनता है <_1st_place>। कोलन तभी रहता है जब उसका प्रीफ़िक्स ऊपर कहीं घोषित हो, जैसे "@xmlns:soap" में; बिना घोषणा वाला "soap:Body" बनता है <soap_Body>, क्योंकि वरना नेमस्पेस समझने वाला कोई भी पार्सर उसे नहीं पढ़ता। किसी भी लिपि के अक्षर चलते हैं, इसलिए "اسم" या "名前" जैसी key जैसी लिखी है वैसी रहती है।
हर मान टेक्स्ट के रूप में लिखा जाता है, और संख्याएँ ठीक वैसी जैसी JSON में हैं: 1.0 वैसा ही 1.0 रहता है और 12345678901234567890 अपना हर अंक रखता है। null और ख़ाली ऑब्जेक्ट दोनों <note/> जैसा ख़ाली एलिमेंट बनते हैं, और ख़ाली लिस्ट कुछ भी नहीं लिखती, इसलिए XML इन तीनों में फ़र्क़ नहीं कर सकता।
कंट्रोल अक्षर — टैब, लाइन फ़ीड और कैरिज रिटर्न को छोड़कर 32 से नीचे के कोड — XML 1.0 में बिल्कुल नहीं लिखे जा सकते,  जैसी संख्या के रूप में भी नहीं, इसलिए वे हटा दिए जाते हैं। कैरिज रिटर्न के रूप में लिखा जाता है ताकि पार्सर उसे बनाए रखे। एट्रिब्यूट के मानों में उद्धरण चिह्न, टैब और लाइन ब्रेक भी रेफ़रेंस के रूप में लिखे जाते हैं, क्योंकि वरना पार्सर उन्हें स्पेस बना देता।
दोहराए गए एलिमेंट लिस्ट का सिर्फ़ एक स्तर दिखा सकते हैं। "m": [[1, 2], [3]] तीन <m> एलिमेंट बनता है जिनमें 1, 2 और 3 हैं, और यह बात खो जाती है कि 1 और 2 साथ थे। सबसे ऊपर की लिस्ट के साथ भी यही होता है: [1, [3, 4]] से तीन <item> एलिमेंट बनते हैं। अगर समूह मायने रखता है, तो हर भीतरी लिस्ट को पहले एक ऑब्जेक्ट में लपेटिए: [{"values": [1, 2]}, {"values": [3]}] से दो <item> एलिमेंट बनते हैं, हर एक में अपना <values>।
जो दस्तावेज़ /xml-to-json से होकर आया है, वह उन्हीं एलिमेंट, एट्रिब्यूट, नेमस्पेस प्रीफ़िक्स और टेक्स्ट के साथ लौटता है, बिना किसी अतिरिक्त आवरण के। जो JSON में कभी था ही नहीं, वह नहीं लौटता: कमेंट और DOCTYPE, चाइल्ड एलिमेंट के बीच टेक्स्ट की जगह, और अलग-अलग नाम वाले एलिमेंट का आपसी क्रम — ऐसे एलिमेंट नाम के हिसाब से समूहों में लौटते हैं। अगर /xml-to-json में टाइप पहचान चालू थी, तो TRUE जैसा मान true बनकर लौटता है; हूबहू वापसी के लिए वहाँ पहचान बंद कर दीजिए।
यह पेज अन्य भाषाओं में: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা