JSON থেকে XML কনভার্টার
বাম দিকে JSON পেস্ট করুন, ডান দিকে সুগঠিত XML পান। @_ প্রিফিক্সযুক্ত কী অ্যাট্রিবিউট হয়। কোনো আপলোড নেই।
- বাম টেক্সট এরিয়ায় JSON পেস্ট করুন।
- "XML-এ রূপান্তর" ক্লিক করুন। JSON কী এলিমেন্টে পরিণত হয়; @_কী অ্যাট্রিবিউটে পরিণত হয়।
- ফরম্যাট করা XML কপি করুন বা ডাউনলোড করুন।
- আপনার ডেটা একটি একক রুট কী দিয়ে মুড়ে দিন — XML একটি টপ-লেভেল এলিমেন্ট চায়।
এটি কী করে?
fast-xml-parser প্রথা ব্যবহার করে JSON অবজেক্টকে XML-এ রূপান্তর করে। অবজেক্ট প্রপার্টি চাইল্ড এলিমেন্ট হয়; `@_` প্রিফিক্সযুক্ত প্রপার্টি প্যারেন্টে অ্যাট্রিবিউট হয়; অ্যারে একই ট্যাগ নামে পুনরাবৃত্ত সিবলিং এলিমেন্ট হয়। সংখ্যা, বুলিয়ান এবং স্ট্রিং টেক্সট কন্টেন্ট হিসেবে নিঃসৃত হয়। আউটপুট পঠনযোগ্যতার জন্য ইন্ডেন্ট করা হয়।
উদাহরণ
JSON ইনপুট:
{
"root": {
"@_version": 1,
"name": "Ada",
"tags": ["math", "logic"]
}
} XML আউটপুট:
<root version="1">
<name>Ada</name>
<tags>math</tags>
<tags>logic</tags>
</root> JSON থেকে XML-এ সাধারণ সমস্যা
XML কাঠামো সম্পর্কে JSON-এর চেয়ে কঠোর। নিচের প্যাটার্নগুলো বেশিরভাগ আশ্চর্যজনক আউটপুট কভার করে।
- একক রুট নেই। XML-এর ঠিক একটি রুট এলিমেন্ট প্রয়োজন। একাধিক টপ-লেভেল কী সহ JSON অবজেক্ট একাধিক রুট তৈরি করে, যা অবৈধ XML। আপনার ইনপুট একটি একক কী-তে মুড়ুন: `{"root": {"a":1, "b":2}}`।
- টপ-লেভেল অ্যারে। JSON অ্যারে `[{"a":1},{"a":2}]`-এর ব্যবহারের জন্য কোনো রুট এলিমেন্ট নাম নেই। মুড়ুন: `{"items": [{"a":1},{"a":2}]}`। প্রতিটি অ্যারে এন্ট্রি তখন একটি `<items>` এলিমেন্টে পরিণত হয়।
- স্পেস বা প্রতীক সহ এলিমেন্ট নাম। XML এলিমেন্ট নামে স্পেস থাকতে পারে না, অঙ্ক দিয়ে শুরু হতে পারে না, বা `:`, `/`, `<` ইত্যাদি থাকতে পারে না। রূপান্তরের আগে JSON কী স্যানিটাইজ করুন — স্পেসকে `_` দিয়ে প্রতিস্থাপন করুন, অঙ্কের আগে একটি অক্ষর যুক্ত করুন।
- অ্যাট্রিবিউট বনাম এলিমেন্ট। একটি JSON কী `id` চাইল্ড এলিমেন্ট `<id>1</id>` হয়। এটিকে অ্যাট্রিবিউট (`<user id="1">`) করতে, কী-কে `@_` দিয়ে প্রিফিক্স করুন: `{"user":{"@_id":1}}`। আউটপুটে প্রিফিক্স সরিয়ে দেওয়া হয়।
- null মান। JSON `null` খালি এলিমেন্ট (`<x/>`) হয়। যদি আপনি এটি সম্পূর্ণরূপে বাদ দিতে চান, রূপান্তরের আগে আপনার JSON থেকে null মান সরিয়ে দিন।
- টেক্সটে বিশেষ অক্ষর। XML স্বয়ংক্রিয়ভাবে `<`, `>`, `&`, `"` এবং `\'` এস্কেপ করে। আপনার JSON স্ট্রিং `"<b>hi</b>"` টেক্সট `<b>hi</b>` হয়, নেস্টেড এলিমেন্ট নয়। প্রকৃত নেস্টিং চাইলে মধ্যবর্তী JSON গঠন ব্যবহার করুন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
`<?xml version="1.0"?>` XML ঘোষণা কীভাবে পাব?
এটি নিজেই আউটপুটের আগে যুক্ত করুন — কনভার্টার ঘোষণা নিঃসরণ করে না। UTF-8 XML-এর জন্য, ঘোষণা প্রযুক্তিগতভাবে ঐচ্ছিক কিন্তু সাধারণত অন্তর্ভুক্ত: `<?xml version="1.0" encoding="UTF-8"?>` তারপর আপনার রূপান্তরিত XML।
JSON অ্যারে কি পুনরাবৃত্ত এলিমেন্ট হিসাবে সংরক্ষিত হয়?
হ্যাঁ। `{"tags":["a","b"]}` `<tags>a</tags><tags>b</tags>` হয় — একই ট্যাগ সহ দুটি সিবলিং, যা পুনরাবৃত্ত মানের জন্য মান XML উপস্থাপন।
আমি কি XML-এ JSON-শৈলী নেস্টেড অ্যারে পেতে পারি?
সরাসরি নয়। XML-এর কোনো নেটিভ অ্যারে ধারণা নেই; শুধু পুনরাবৃত্ত সিবলিং। JSON-এ নেস্টেড অ্যারে একটি চ্যাপ্টা XML কাঠামোতে পরিণত হয় যেখানে প্রসঙ্গ গ্রুপিং নির্ধারণ করে। এই টুলের মাধ্যমে XML → JSON → XML রাউন্ড-ট্রিপ রাউন্ড-ট্রিপেবল উপসেট সংরক্ষণ করে।
তারিখ কীভাবে হ্যান্ডেল হয়?
JSON-এ Date টাইপ নেই — তারিখ সাধারণত আগে থেকেই ISO 8601 স্ট্রিং হয়। সেগুলো অপরিবর্তিত এলিমেন্ট টেক্সট কন্টেন্টে পরিণত হয়। আপনার XML ডাউনস্ট্রিম যদি বিশেষ তারিখ ফরম্যাট আশা করে, নিশ্চিত করুন যে JSON সেই ফরম্যাট ব্যবহার করে।
আমার JSON কি আপলোড হয়?
না। সব আপনার ব্রাউজারে চলে — আপনার ইনপুট এই পেজের JavaScript দ্বারা পার্স ও কনভার্ট হয় এবং কখনো কোনো সার্ভারে পাঠানো হয় না।
JSON → XML → JSON রাউন্ড-ট্রিপিং কি আমার ডেটা সংরক্ষণ করবে?
@_ অ্যাট্রিবিউট প্রথা সহ সাধারণ স্ট্রাকচার্ড ডেটার জন্য, হ্যাঁ — অর্থগতভাবে। কিছু এজ কেস (মিশ্র টেক্সট + চাইল্ড এলিমেন্ট, অ্যাট্রিবিউট ক্রম বনাম এলিমেন্ট ক্রম) স্বাভাবিক হতে পারে। যদি সঠিক বাইট-সমতুল্যতা গুরুত্বপূর্ণ হয়, XML-এর মাধ্যমে রাউন্ড-ট্রিপ করবেন না।