XML को JSON में बदलें

आपके डिवाइस पर चलता है · आपकी फ़ाइल कभी आपके डिवाइस से बाहर नहीं जाती।

.xml फ़ाइल डालिए या API, फ़ीड या कॉन्फ़िग फ़ाइल से XML पेस्ट कीजिए और काम में आने वाला JSON पाइए। दस्तावेज़ ब्राउज़र के अपने XML पार्सर से, उस एन्कोडिंग में पढ़ा जाता है जो उसकी पहली लाइन घोषित करती है, इसलिए जो भी सही-सलामत (well-formed) है वह बदल जाता है, और ख़राब फ़ाइल की समस्या पंक्ति और कॉलम के साथ, और वहाँ क्या ग़लत है यह बताते हुए, दिखाई जाती है।

मैपिंग तय और उलटने लायक है: हर एलिमेंट एक key बनता है; एक ही नाम के भाई-बहन एलिमेंट array बनते हैं; एट्रिब्यूट @ से शुरू होने वाली key में रहते हैं (id="A3" बनता है "@id": "A3"); और जब किसी एलिमेंट में टेक्स्ट के साथ चाइल्ड या एट्रिब्यूट भी हों, तो टेक्स्ट "#text" के नीचे जाता है। सिर्फ़ टेक्स्ट वाला एलिमेंट सीधे वही मान बन जाता है।

टाइप पहचान चालू हो तो 12, true जैसा टेक्स्ट या खाली एलिमेंट संख्या, बूलियन या null बनता है; बंद कर दें तो सब टेक्स्ट रहता है। नेमस्पेस वाले नाम (soap:Body) जैसे लिखे हैं वैसे रहते हैं। डाउनलोड से पहले पूर्वावलोकन में पहली 200 पंक्तियाँ दिखती हैं।

XML को JSON में बदलें कैसे करें

  1. XML फ़ाइल डालिए, या बॉक्स में XML पेस्ट कीजिए।
  2. तय कीजिए कि संख्याएँ, बूलियन और खाली एलिमेंट टाइप हों या नहीं।
  3. "JSON में बदलें" दबाइए और पूर्वावलोकन जाँचिए।
  4. .json डाउनलोड कीजिए।

समर्थित फ़ॉर्मेट और सीमाएँ

इनपुट
XML (.xml) — फ़ाइल या पेस्ट किया टेक्स्ट, उस एन्कोडिंग में जो वह घोषित करता है
आउटपुट
JSON, सुंदर इंडेंट, UTF-8
एट्रिब्यूट
"@name" key के रूप में रखे जाते हैं
दोहराए गए एलिमेंट
array बनते हैं
कहाँ चलता है
आपके ब्राउज़र में — कोई अपलोड नहीं

इनके लिए नहीं: जो दस्तावेज़ सही-सलामत XML नहीं हैं (बंद न किए टैग, HTML पेज) — पार्सर अंदाज़ा लगाने की जगह पहली समस्या बताता है।

कौन से मान टाइप बदलते हैं

टाइप पहचान टेक्स्ट के साथ-साथ एट्रिब्यूट पर भी लागू होती है, और कोई मान तभी बदलती है जब उसमें कुछ न खोए। चालू हो तो id="3" बनता है "@id": 3, जबकि id="007" टेक्स्ट "007" ही रहता है। 1.50 भी टेक्स्ट रहता है, क्योंकि संख्या बनकर वह 1.5 के रूप में लिखा जाता। TRUE बनता है true। <note/> जैसा ख़ाली एलिमेंट, और सिर्फ़ स्पेस वाला एलिमेंट, null बनते हैं; NULL शब्द टेक्स्ट रहता है। 2024-01-05 जैसी तारीख़ें कभी नहीं बदलतीं।

पहचान बंद हो तो ख़ाली एलिमेंट "" बनते हैं और हर मान ठीक वैसा ही टेक्स्ट रहता है जैसा लिखा है।

JSON क्या नहीं रख सकता

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 में पहले से बनी पाँच एंटिटी (&amp; &lt; &gt; &quot; &apos;) और &#160; जैसी संख्या वाली एंटिटी समझी जाती हैं। जब पार्सर रुकता है, तो संदेश लाइन और कॉलम देता है और सादे शब्दों में बताता है कि क्या ग़लत है: किसी दूसरे नाम से बंद किया गया एलिमेंट, &nbsp; जैसा अनजाना नाम (उसकी जगह &#160; लिखिए), अकेला & या <, सबसे ऊपर का दूसरा एलिमेंट, या बीच में ही ख़त्म हो जाने वाली फ़ाइल।

फ़ाइल उस एन्कोडिंग में पढ़ी जाती है जो उसकी पहली लाइन घोषित करती है, जैसे ISO-8859-1 या windows-1256। घोषणा न हो तो UTF-8 या UTF-16 पढ़ा जाता है, और पुराने कोड पेज वैसे ही पहचाने जाते हैं जैसा /csv-to-json पर बताया गया है।

अक्सर पूछे जाने वाले प्रश्न

क्या मेरी फ़ाइल किसी सर्वर पर अपलोड होती है?
नहीं। पूरा काम आपके ब्राउज़र में, आपके अपने डिवाइस की क्षमता से होता है। फ़ाइल आपके कंप्यूटर या फ़ोन से बाहर नहीं जाती, और कोई भी टूल एक बार इस्तेमाल हो जाने के बाद इंटरनेट बंद होने पर भी काम करता रहता है।
एट्रिब्यूट और मिली-जुली सामग्री कैसे सँभाली जाती है?
एट्रिब्यूट @ लगी key बनते हैं, इसलिए <item id="A3"> से "@id": "A3" मिलता है। एलिमेंट में टेक्स्ट के साथ एट्रिब्यूट या चाइल्ड एलिमेंट भी हों तो टेक्स्ट "#text" में रखा जाता है; सिर्फ़ टेक्स्ट वाला एलिमेंट सीधे वही टेक्स्ट बन जाता है।
एक एलिमेंट ऑब्जेक्ट और दोहराए गए array क्यों बनते हैं?
जो एलिमेंट अपने पैरेंट के नीचे एक बार आता है वह ऑब्जेक्ट (या मान) बनता है; एक ही नाम के दो या ज़्यादा भाई-बहन array बनते हैं। यह दस्तावेज़ को हूबहू दिखाता है, इसलिए एक आइटम की लिस्ट एक ऑब्जेक्ट है — आपके कोड को दोनों हालत में array चाहिए तो उसे लेने वाली तरफ़ लपेट लीजिए।
JSON का ऊपरी हिस्सा कैसा दिखता है?
रूट एलिमेंट के नाम की एक key, जिसमें भीतर का सब कुछ है — <records>…</records> बनता है {"records": {...}}। रूट का नाम बचा रहता है ताकि "JSON को XML में बदलें" टूल वही दस्तावेज़ दोबारा बना सके।

संबंधित उपकरण

स्प्रेडशीट और डेटा में और

यह पेज अन्य भाषाओं में: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা