JSON থেকে XML

আপনার ডিভাইসেই চলে · আপনার ফাইল কখনও আপনার ডিভাইস ছেড়ে যায় না।

JSON পেস্ট করুন বা ফাইল দিন, আর পান এমন XML যার উপরে declaration আর প্রতিটা কি-র জন্য একটা করে এলিমেন্ট। উপরের স্তরে একটাই কি থাকলে সেটাই root এলিমেন্ট হয়; না হলে সব যায় <root>-এর ভেতরে। লিস্ট হলে ওই কি-র নামে কয়েকটা এলিমেন্ট বসে; উপরের স্তরে লিস্ট থাকলে <root>-এর ভেতরে <item> এলিমেন্ট হয়।

@ দিয়ে শুরু কি হয় অ্যাট্রিবিউট আর "#text" কি হয় এলিমেন্টের লেখা — XML to JSON টুল ঠিক এই আকারেই লেখে, তাই সেখানে কনভার্ট করা ডকুমেন্ট এখানে একই XML হয়ে ফেরে। বাকি প্রতিটা মান তার এলিমেন্টের ভেতরে লেখা হিসেবে বসে, null হয় ফাঁকা এলিমেন্ট, আর প্রতিটা স্তরে দুই স্পেস ইনডেন্ট থাকে বলে টেক্সট এডিটরে সহজে পড়া যায়। XML যে নামগুলো মানে না — সংখ্যা দিয়ে শুরু, ফাঁকা জায়গা বা চিহ্নওয়ালা — সেগুলো আন্ডারস্কোর দিয়ে ঠিক করে নেওয়া হয়, তাই ফলটা সবসময় পার্স হয়।

লেখা ঠিকভাবে escape হয় (&, <, > আর অ্যাট্রিবিউটে উদ্ধৃতিচিহ্ন ও লাইন ব্রেক); কন্ট্রোল ক্যারেক্টার, যা XML 1.0 একেবারেই ধরতে পারে না, সরিয়ে ফেলা হয়। এনকোডিং UTF-8, আর ডাউনলোডের আগে প্রথম 200 লাইন দেখা যায়।

JSON থেকে XML: কীভাবে করবেন

  1. JSON ফাইল দিন, বা বাক্সে JSON পেস্ট করুন।
  2. «XML-এ কনভার্ট করুন» চাপুন।
  3. প্রিভিউ দেখে .xml ডাউনলোড করুন।

সমর্থিত ফরম্যাট ও সীমা

ইনপুট
JSON (.json) — ফাইল বা পেস্ট করা লেখা
আউটপুট
XML 1.0, UTF-8, উপরে declaration, সাজানো
Root
উপরের স্তরের একমাত্র কি, নইলে <root>; উপরের স্তরে লিস্ট হলে <item> এলিমেন্ট
লিস্ট
কি-র নামে কয়েকটা এলিমেন্ট
যেখানে চলে
আপনার ব্রাউজারেই — আপলোড ছাড়া

যার জন্য নয়: নির্দিষ্ট XML স্কিমা মেলানো (SOAP, RSS, কোনো ইনভয়েস স্ট্যান্ডার্ড) — এলিমেন্টের নাম আসে আপনার JSON-এর কি থেকে, স্কিমা থেকে নয়।

আপনার কি কীভাবে এলিমেন্টের নাম হয়

@ দিয়ে শুরু হওয়া কি হয় অ্যাট্রিবিউট, আর "#text" কি হয় এলিমেন্টের লেখা, তাই {"item": {"@id": 3, "#text": "A"}} থেকে আসে <item id="3">A</item>। ডকুমেন্টের উপরের স্তরে একটাই কি থাকলে সেটাই root এলিমেন্ট; না হলে সবকিছু যায় <root>-এর ভেতরে।

XML নামে যে অক্ষর চলে না, সেটা হয় আন্ডারস্কোর, আর যে নাম এমন অক্ষর দিয়ে শুরু, যা প্রথমে বসতে পারে না — যেমন অঙ্ক — তার সামনে একটা আন্ডারস্কোর বসে: "1st place" হয় <_1st_place>। কোলন থাকে শুধু তখন, যখন তার প্রিফিক্স আরও ওপরে ঘোষণা করা আছে, যেমন "@xmlns:soap"-এ; ঘোষণা ছাড়া "soap:Body" হয় <soap_Body>, কারণ নইলে কোনো namespace-সচেতন পার্সার এটা পড়ত না। যেকোনো লিপির অক্ষর চলে, তাই "নাম", "اسم" বা "名前"-এর মতো কি যেমন লেখা তেমনই থাকে।

মানগুলো দেখতে কেমন হয়

প্রতিটা মান লেখা হয় টেক্সট হিসেবে, আর সংখ্যা ঠিক JSON-এ যেমন আছে: 1.0 থাকে 1.0, আর 12345678901234567890 প্রতিটা অঙ্ক রাখে। null আর ফাঁকা অবজেক্ট দুটোই হয় <note/>-এর মতো ফাঁকা এলিমেন্ট, আর ফাঁকা লিস্ট কিছুই লেখে না, তাই XML দেখে এই তিনটাকে আলাদা করা যায় না।

কন্ট্রোল ক্যারেক্টার — ট্যাব, লাইন ফিড আর ক্যারেজ রিটার্ন ছাড়া 32-এর নিচের কোড — XML 1.0-এ একেবারেই লেখা যায় না, &#1;-এর মতো সংখ্যা দিয়েও না, তাই সেগুলো সরিয়ে ফেলা হয়। ক্যারেজ রিটার্ন লেখা হয় &#13; হিসেবে, যাতে পার্সার সেটা রাখে। অ্যাট্রিবিউটের মানে উদ্ধৃতিচিহ্ন, ট্যাব আর লাইন ব্রেকও রেফারেন্স হিসেবে লেখা হয়, কারণ নইলে পার্সার এগুলোকে ফাঁকা জায়গা বানিয়ে দিত।

লিস্টের লিস্ট তার দল হারায়

একই নামের এলিমেন্ট বারবার বসিয়ে লিস্টের শুধু এক স্তরই বোঝানো যায়। "m": [[1, 2], [3]] হয় তিনটা <m> এলিমেন্ট, তাতে 1, 2 আর 3, আর 1 ও 2 যে একসঙ্গে ছিল, সেই তথ্য হারিয়ে যায়। উপরের স্তরের লিস্টও একই আচরণ করে: [1, [3, 4]] থেকে আসে তিনটা <item> এলিমেন্ট। দলটা জরুরি হলে আগে প্রতিটা ভেতরের লিস্টকে একটা অবজেক্টে মুড়ে নিন: [{"values": [1, 2]}, {"values": [3]}] থেকে আসে দুটো <item> এলিমেন্ট, প্রত্যেকটার ভেতরে নিজের <values>।

XML থেকে JSON, আর আবার ফেরত

XML to JSON (/xml-to-json) হয়ে আসা ডকুমেন্ট এখানে ফেরে একই এলিমেন্ট, অ্যাট্রিবিউট, namespace প্রিফিক্স আর লেখা নিয়ে, চারপাশে বাড়তি কোনো মোড়ক ছাড়া। যা JSON কখনো ধরেনি তা ফেরে না: কমেন্ট আর DOCTYPE, চাইল্ড এলিমেন্টগুলোর মাঝে লেখার অবস্থান, আর ভিন্ন নামের এলিমেন্টের মধ্যেকার ক্রম — সেগুলো ফেরে নাম ধরে দল বেঁধে। XML to JSON-এ টাইপ চেনানো চালু থাকলে TRUE-এর মতো মান ফেরে true হয়ে; শব্দে শব্দে মেলানো ফেরত চাইলে সেখানে টাইপ চেনানো বন্ধ রাখুন।

সাধারণ জিজ্ঞাসা

নির্দিষ্ট কোনো XML স্কিমা মেনে বানানো যাবে?
না। এলিমেন্টের নাম আসে আপনার JSON-এর কি থেকে, কোনো স্কিমা থেকে নয়।
আমার ফাইল কি কোনো সার্ভারে আপলোড হয়?
না। পুরো কাজটা হয় আপনার ব্রাউজারেই, আপনার নিজের ফোন বা কম্পিউটারের ক্ষমতায়। ফাইল ডিভাইস ছেড়ে কোথাও যায় না। কোনো টুল একবার ব্যবহার করা হয়ে গেলে ইন্টারনেট ছাড়াও সেটা চলে — ভিডিও, লেখা চেনা আর ব্যাকগ্রাউন্ড সরানোর টুল প্রথমবার নিজের ইঞ্জিন এই সাইট থেকে নামিয়ে নেয়, তারপর ব্রাউজার সেটা রেখে দেয়।
বাংলা লেখা চলবে?
চলবে। এনকোডিং UTF-8, তাই বাংলা এলিমেন্টের ভেতরে ঠিকভাবেই বসে।
অ্যাট্রিবিউট বানানো হয়?
হ্যাঁ: কি-র সামনে @ বসান। {"item": {"@id": 3, "name": "A"}} থেকে আসে <item id="3"><name>A</name></item>। XML to JSON টুল এই আকারেই লেখে, তাই আসা-যাওয়ায় একই ডকুমেন্ট ফেরে।
ফাইল না দিয়ে পেস্ট করা যাবে?
যাবে; বাক্সে JSON পেস্ট করলেই হয়।

সম্পর্কিত টুল

স্প্রেডশিট ও ডেটা বিভাগে আরও

এই পাতা অন্য ভাষায়: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia