JSON को XML में बदलने का कोई एक सही तरीका नहीं है। दोनों फ़ॉर्मेट्स डेटा को एक ही तरह से मॉडल नहीं करते: XML में एट्रीब्यूट्स, मिक्स्ड कंटेंट और कोई नेटिव एरे टाइप नहीं है, जिनमें से किसी का भी JSON में कोई समकक्ष नहीं है। यह टूल एक मैपिंग चुनता है और उसे पेज पर घोषित करता है, यह दिखावा करने के बजाय कि कोई प्राकृतिक मौजूद है।
JSON to XML कनवर्टर का उपयोग करना
एक दिशा चुनें, और XML लिखते समय, रूट एलीमेंट के लिए एक नाम, क्योंकि JSON में कुछ भी नहीं है जो एक डॉक्यूमेंट को उसी तरह नाम दे जैसे XML रूट एलीमेंट देता है। बदलते हुए
{"items":[{"name":"A & B <co>"},{"name":"C"}],"note":null}
रूट catalog पर सेट करने से बनता है:
<catalog>
<items>
<name>A & B <co></name>
</items>
<items>
<name>C</name>
</items>
<note/>
</catalog>
एक ऑब्जेक्ट मेंबर एक चाइल्ड एलीमेंट बन जाता है, एक एरे एरे की
कुंजी को अपने नाम के रूप में शेयर करने वाले रिपीटेड सिबलिंग
एलीमेंट्स में बदल जाता है, और XML टेक्स्ट के अंदर गैर-कानूनी
कैरेक्टर्स जैसे & और <, एस्केप कर दिए जाते हैं।
एट्रीब्यूट्स, टेक्स्ट, और खाली मान
@ से शुरू होने वाली कुंजी लिखते समय एक XML एट्रीब्यूट बन जाती
है, और #text कुंजी चाइल्ड एलीमेंट्स के बगल में बैठा टेक्स्ट बन
जाती है। न @ न # XML एलीमेंट नाम शुरू करने के लिए एक कानूनी
कैरेक्टर है, इसलिए एक सादी JSON कुंजी कभी भी गलती से किसी भी
कन्वेंशन से टकरा नहीं सकती।
null, एक खाली ऑब्जेक्ट, एक खाली एरे, और एक खाली स्ट्रिंग सब
एक खाली एलीमेंट बन जाते हैं, क्योंकि XML के पास कुछ भी नहीं होने
के लिए ठीक एक शेप है और वे उनमें अंतर नहीं कर सकता। <note/> को
वापस पढ़ने से इसलिए चारों के लिए null मिलता है, जो पेज स्पष्ट
रूप से घोषित करता है न कि आपको खोजने देता है।
क्यों रीडर हर मान को स्ट्रिंग के रूप में रिटर्न करता है
XML बिल्कुल भी टाइप जानकारी रिकॉर्ड नहीं करता। XML डॉक्यूमेंट में एक नंबर फ़ॉर्मेट के लिहाज से सिर्फ डिजिट्स है, और यह अनुमान लगाना कि यह JSON नंबर बनना चाहिए ठीक वही तरह का अनुमान है जो एक पिन कोड को उसके लीडिंग ज़ीरो के बिना इंटेजर में बदल देता है। वापस पढ़ना अनुमान लगाने से इनकार करके बिना नुकसान के रहता है।
रिपीटेड एलीमेंट नाम वापस आने का क्या मतलब है
एक ही पैरेंट के नीचे एक रिपीटेड एलीमेंट नाम वापस आने पर JSON एरे बन जाता है, और एक मेंबर नाम जो वैध XML एलीमेंट नाम नहीं है वह कन्वर्ज़न रोक देता है और अपराधी कुंजी का नाम बताता है, चुपचाप उसे कुछ ऐसी चीज़ में बदलने के बजाय जो वैध टैग लगता है।