आपके डिवाइस पर चलता है · आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती।
.xml फ़ाइल डालिए या API, फ़ीड या कॉन्फ़िग फ़ाइल से XML पेस्ट कीजिए और काम में आने वाला JSON पाइए। दस्तावेज़ ब्राउज़र के अपने XML पार्सर से, उस एन्कोडिंग में पढ़ा जाता है जो उसकी पहली लाइन घोषित करती है, इसलिए जो भी सही-सलामत (well-formed) है वह बदल जाता है, और ख़राब फ़ाइल की समस्या पंक्ति और कॉलम के साथ, और वहाँ क्या ग़लत है यह बताते हुए, दिखाई जाती है।
मैपिंग तय और उलटने लायक है: हर एलिमेंट एक key बनता है; एक ही नाम के भाई-बहन एलिमेंट array बनते हैं; एट्रिब्यूट @ से शुरू होने वाली key में रहते हैं (id="A3" बनता है "@id": "A3"); और जब किसी एलिमेंट में टेक्स्ट के साथ चाइल्ड या एट्रिब्यूट भी हों, तो टेक्स्ट "#text" के नीचे जाता है। सिर्फ़ टेक्स्ट वाला एलिमेंट सीधे वही मान बन जाता है।
टाइप पहचान चालू हो तो 12, true जैसा टेक्स्ट या खाली एलिमेंट संख्या, बूलियन या null बनता है; बंद कर दें तो सब टेक्स्ट रहता है। नेमस्पेस वाले नाम (soap:Body) जैसे लिखे हैं वैसे रहते हैं। डाउनलोड से पहले पूर्वावलोकन में पहली 200 पंक्तियाँ दिखती हैं।
इनके लिए नहीं: जो दस्तावेज़ सही-सलामत XML नहीं हैं (बंद न किए टैग, HTML पेज) — पार्सर अंदाज़ा लगाने की जगह पहली समस्या बताता है।
टाइप पहचान टेक्स्ट के साथ-साथ एट्रिब्यूट पर भी लागू होती है, और कोई मान तभी बदलती है जब उसमें कुछ न खोए। चालू हो तो id="3" बनता है "@id": 3, जबकि id="007" टेक्स्ट "007" ही रहता है। 1.50 भी टेक्स्ट रहता है, क्योंकि संख्या बनकर वह 1.5 के रूप में लिखा जाता। TRUE बनता है true। <note/> जैसा ख़ाली एलिमेंट, और सिर्फ़ स्पेस वाला एलिमेंट, null बनते हैं; NULL शब्द टेक्स्ट रहता है। 2024-01-05 जैसी तारीख़ें कभी नहीं बदलतीं।
पहचान बंद हो तो ख़ाली एलिमेंट "" बनते हैं और हर मान ठीक वैसा ही टेक्स्ट रहता है जैसा लिखा है।
XML दस्तावेज़ के कुछ हिस्सों की JSON में कोई जगह नहीं, इसलिए वे छोड़ दिए जाते हैं: कमेंट, प्रोसेसिंग इंस्ट्रक्शन और DOCTYPE। CDATA सेक्शन साधारण टेक्स्ट बनते हैं, इसलिए <a><![CDATA[<b>x</b>]]></a> से "a": "<b>x</b>" मिलता है।
अलग-अलग नाम वाले एलिमेंट का आपसी क्रम खो जाता है, क्योंकि हर नाम एक key बनता है। <step>1</step><note/><step>2</step> में दोनों step "step": [1, 2] में इकट्ठे हो जाते हैं, और कहीं दर्ज नहीं होता कि note उनके बीच था। मार्कअप के बीच का टेक्स्ट भी इसी तरह अपनी जगह खोता है: <p>Hello <b>world</b> and <i>you</i>!</p> बनता है "b": "world", "i": "you" और "#text": "Hello and !"। जिन दस्तावेज़ों में यही क्रम असली सामग्री है, जैसे फ़ॉर्मैट किया हुआ गद्य, उनके लिए यह मैपिंग ठीक नहीं बैठती।
प्रीफ़िक्स वाले नाम जैसे लिखे हैं वैसे रहते हैं, और नेमस्पेस की घोषणाएँ एट्रिब्यूट के रूप में आती हैं: <soap:Envelope xmlns:soap="…"> से "soap:Envelope" key बनती है जिसमें "@xmlns:soap" होता है, और /json-to-xml दोनों को वापस उसी XML में बदल देता है।
दस्तावेज़ के अपने DOCTYPE में परिभाषित एंटिटी के अलावा सिर्फ़ XML में पहले से बनी पाँच एंटिटी (& < > " ') और   जैसी संख्या वाली एंटिटी समझी जाती हैं। जब पार्सर रुकता है, तो संदेश लाइन और कॉलम देता है और सादे शब्दों में बताता है कि क्या ग़लत है: किसी दूसरे नाम से बंद किया गया एलिमेंट, जैसा अनजाना नाम (उसकी जगह   लिखिए), अकेला & या <, सबसे ऊपर का दूसरा एलिमेंट, या बीच में ही ख़त्म हो जाने वाली फ़ाइल।
फ़ाइल उस एन्कोडिंग में पढ़ी जाती है जो उसकी पहली लाइन घोषित करती है, जैसे ISO-8859-1 या windows-1256। घोषणा न हो तो UTF-8 या UTF-16 पढ़ा जाता है, और पुराने कोड पेज वैसे ही पहचाने जाते हैं जैसा /csv-to-json पर बताया गया है।
यह पेज अन्य भाषाओं में: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা