আপনার ডিভাইসেই চলে · আপনার ফাইল কখনও আপনার ডিভাইস ছেড়ে যায় না।
.xml ফাইল দিন, বা API, ফিড কিংবা কনফিগারেশন ফাইল থেকে XML পেস্ট করুন — কাজে লাগানোর মতো JSON পাবেন। ডকুমেন্টটা পড়ে ব্রাউজারের নিজের XML পার্সার, প্রথম লাইনে ঘোষিত এনকোডিংয়ে, তাই well-formed যেকোনো ফাইল কনভার্ট হয়, আর গোলমাল থাকলে কোন লাইনে কোন কলামে আর কী ভুল তা বলে দেওয়া হয়।
ম্যাপিংটা বাঁধা আর ফিরিয়ে আনার মতো: প্রতিটা এলিমেন্ট এক কি হয়; একই নামের পাশাপাশি এলিমেন্ট অ্যারে হয়; অ্যাট্রিবিউট @ দিয়ে শুরু কি-তে থাকে (id="A3" হয় "@id": "A3"); আর কোনো এলিমেন্টে লেখা আর ভেতরের এলিমেন্ট বা অ্যাট্রিবিউট দুটোই থাকলে লেখাটা বসে "#text"-এ। শুধু লেখা আছে এমন এলিমেন্ট নিজেই মান হয়ে যায়।
টাইপ চেনানো চালু থাকলে 12, true বা ফাঁকা এলিমেন্ট যথাক্রমে সংখ্যা, বুলিয়ান আর null হয়; বন্ধ করলে সবই টেক্সট থাকে। namespace দেওয়া নাম (soap:Body) যেমন আছে তেমনই থাকে।
যার জন্য নয়: যেসব ডকুমেন্ট well-formed XML নয় (ট্যাগ বন্ধ করা নেই, HTML পাতা) — পার্সার প্রথম সমস্যাটা জানিয়ে দেয়, অনুমান করে না।
টাইপ চেনানো অ্যাট্রিবিউট আর লেখা দুটোতেই খাটে, আর মান বদলায় শুধু যেখানে কিছু হারায় না। চালু থাকলে id="3" হয় "@id": 3, কিন্তু id="007" থাকে লেখা "007"। 1.50-ও লেখা থাকে, কারণ সংখ্যা হিসেবে আবার লিখলে হতো 1.5। TRUE হয় true। <note/>-এর মতো ফাঁকা এলিমেন্ট, আর শুধু ফাঁকা জায়গা ধরা এলিমেন্ট, হয় null; NULL শব্দটা লেখাই থাকে। তারিখ, যেমন 2024-01-05, কখনো বদলানো হয় না।
চেনানো বন্ধ থাকলে ফাঁকা এলিমেন্ট হয় "", আর প্রতিটা মান যেমন লেখা ঠিক তেমন লেখাই থাকে।
XML ডকুমেন্টের কিছু অংশের JSON-এ কোনো জায়গা নেই, তাই সেগুলো বাদ পড়ে: কমেন্ট, processing instruction আর DOCTYPE। CDATA অংশ সাধারণ লেখা হয়ে যায়, তাই <a><![CDATA[<b>x</b>]]></a> থেকে আসে "a": "<b>x</b>"।
ভিন্ন নামের এলিমেন্টের মধ্যেকার ক্রম হারায়, কারণ প্রতিটা নাম একটা কি হয়। <step>1</step><note/><step>2</step>-এ দুটো step জড়ো হয় "step": [1, 2]-এ, আর note যে মাঝখানে বসে ছিল তার কোনো হিসাব থাকে না। markup-এর সঙ্গে মেশানো লেখাও একইভাবে নিজের জায়গা হারায়: <p>Hello <b>world</b> and <i>you</i>!</p> হয় "b": "world", "i": "you" আর "#text": "Hello and !"। যেসব ডকুমেন্টে ওই ক্রমটাই আসল বিষয় — যেমন ফরম্যাট করা গদ্য — সেগুলোর জন্য এই ম্যাপিং ভালো নয়।
প্রিফিক্সওয়ালা নাম যেমন লেখা তেমন থাকে, আর namespace ঘোষণা আসে অ্যাট্রিবিউট হয়ে: <soap:Envelope xmlns:soap="…"> থেকে আসে "soap:Envelope" কি, তার ভেতরে "@xmlns:soap", আর JSON to XML (/json-to-xml) দুটোকেই আবার একই XML বানায়।
ডকুমেন্টের নিজের DOCTYPE যে entity ঠিক করে দেয়, সেগুলো ছাড়া বোঝা যায় শুধু XML-এর পাঁচটা নিজস্ব entity (& < > " ') আর  -এর মতো সংখ্যার entity। পার্সার থামলে বার্তা লাইন আর কলাম জানায়, আর সহজ কথায় বলে কী ভুল: অন্য নামে বন্ধ করা এলিমেন্ট, -এর মতো অচেনা নাম (তার বদলে   লিখুন), একা & বা <, উপরের স্তরে দ্বিতীয় একটা এলিমেন্ট, বা আগেভাগে শেষ হয়ে যাওয়া ফাইল।
ফাইল পড়া হয় তার প্রথম লাইনে ঘোষিত এনকোডিংয়ে, যেমন ISO-8859-1 বা windows-1256। ঘোষণা না থাকলে UTF-8 বা UTF-16 পড়া হয়, আর পুরোনো কোড পেজ চেনা হয় সেভাবে, যেভাবে CSV to JSON পাতায় (/csv-to-json) বলা আছে।
এই পাতা অন্য ভাষায়: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia