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 উপাদান নাম নয় সেটি রূপান্তর থামিয়ে দেয় এবং সমস্যাজনক কীকে নাম দেয়, চুপচাপে এটিকে এমন কিছুতে পরিবর্তন করার পরিবর্তে যা একটি বৈধ ট্যাগের মতো দেখায়।