XML থেকে JSON রূপান্তর কীভাবে কাজ করে
এই টুল আপনার XML পার্স করে একটি ডকুমেন্ট ট্রি বানায়, তারপর পূর্বানুমেয় নিয়মে সেটাকে JSON-এ রূপান্তর করে। এলিমেন্টগুলো অবজেক্ট হয়, অ্যাট্রিবিউট রাখা যেতে পারে, আর একই প্যারেন্টের অধীনে পুনরাবৃত্ত এলিমেন্টগুলো অ্যারে হয়ে যায়। সবকিছু আপনার ব্রাউজারেই চলে, তাই কিছুই আপলোড বা স্টোর করা হয় না।
কখন এই টুল ব্যবহার করবেন
XML সাধারণত ফিড, এক্সপোর্ট এবং এন্টারপ্রাইজ ইন্টিগ্রেশনে ব্যবহৃত হয়। আধুনিক অ্যাপে JSON নিয়ে কাজ করা সহজ। XML থেকে JSON সাহায্য করে যখন আপনার দরকার পরিষ্কার ইমপোর্ট, API পেলোড, বা ডেভেলপার-ফ্রেন্ডলি ডেটা।
- API: XML রেসপন্সকে JSON অবজেক্টে বদলে স্ক্রিপ্ট/সার্ভিসে ব্যবহার করুন।
- ফিড: RSS-ধাঁচের বা প্রোডাক্ট ফিডকে JSON স্ট্রাকচারে রূপান্তর করুন।
- লিগ্যাসি এক্সপোর্ট: XML এক্সপোর্টকে JSON গ্রহণ করে এমন টুলে মাইগ্রেট করুন।
- অটোমেশন: একবার XML পার্স করে পাইপলাইনে JSON ব্যবহার করুন।
“রিভার্স” দিক (JSON → XML) দরকার? আমাদের JSON থেকে XML কনভার্টার ব্যবহার করুন। CSV ফরম্যাট দরকার হলে ব্যবহার করুন XML থেকে CSV কনভার্টার।
রূপান্তরের নিয়ম
- এলিমেন্ট: ট্যাগ নামে কী হয়ে JSON অবজেক্টে রূপ নেয়।
- অ্যাট্রিবিউট: চালু থাকলে
@এর নিচে থাকে (যেমন{"@":{"id":"123"}})। - টেক্সট: চালু থাকলে
#textএর নিচে থাকে। “স্মার্ট” মোডে শুধু টেক্সট থাকা এলিমেন্ট স্ট্রিং হয়ে যায়। - পুনরাবৃত্ত সিবলিং: স্বয়ংক্রিয়ভাবে অ্যারে হয় (অথবা ফোর্স করা যায়) যাতে আউটপুট স্থির থাকে।
- নেমস্পেস: ট্যাগ নাম যেমন আছে তেমনই থাকে (প্রিফিক্সসহ)।
ধাপে ধাপে: XML থেকে JSON
আপনার XML রূপান্তর করতে কয়েক সেকেন্ডই লাগে:
- XML ফাইল যোগ করুন। উপরের বক্সে ড্র্যাগ-ড্রপ করুন বা ডিভাইস থেকে বাছুন।
- অপশন বেছে নিন। অ্যাট্রিবিউট, টেক্সট নোড এবং অ্যারে কীভাবে হ্যান্ডেল হবে ঠিক করুন।
- JSON-এ রূপান্তর করুন। JSON-এ রূপান্তর করুন ক্লিক করুন। সব প্রসেসিং লোকালেই হয়।
- আউটপুট সেভ করুন। একেকটি করে সেভ করুন বা প্রস্তুত হলে “সব সেভ করুন” ব্যবহার করুন।
প্রাইভেসি, সীমা এবং টুলটি ফাইল কীভাবে হ্যান্ডেল করে
FileYoga একটি সহজ নিয়ম মেনে চলে: আপনার ফাইল আপনার কাছেই থাকে। XML থেকে JSON রূপান্তর লোকাল ব্রাউজারেই হয়, তাই আপনার ডেটা কখনোই FileYoga সার্ভারে আপলোড হয় না।
শুধু লোকাল রূপান্তর
রূপান্তর আপনার ডিভাইসের ব্রাউজারেই হয়। XML আপলোড হয় না, JSON আউটপুটও আপনার দিকেই তৈরি হয়।
লুকানো কপি নেই
আপনি তালিকা পরিষ্কার করলে বা ট্যাব বন্ধ করলে টুল আপনার ফাইল ব্যবহার বন্ধ করে দেয় এবং সার্ভারে কোনো কপি রাখে না।
কৃত্রিম সীমা নেই
কোনো পেওয়াল বা কোটা নেই। সীমা শুধু আপনার ডিভাইসের মেমরি ও ব্রাউজারের সক্ষমতা।
অ্যাকাউন্ট লাগে না
সাইন আপ ছাড়াই ব্যবহার করুন। পেজ খুলুন, রূপান্তর করুন, কাজ শেষ হলে বের হয়ে যান।
ভালো ফলাফলের জন্য টিপস
- আপনার XML-এ যদি একই ট্যাগ বারবার থাকে, “অটো” অ্যারে রাখলে সিবলিং ট্যাগগুলো অ্যারে হবে।
- একই ধরনের আউটপুট সবসময় চাইলে “ফোর্স অ্যারে” বেছে নিন, যাতে একটিই আইটেম থাকলেও অ্যারে থাকে।
- টেক্সট-শুধু নোডগুলোকে পরিষ্কার JSON করতে “স্মার্ট” টেক্সট মোড ব্যবহার করুন।
- খুব বড় XML হলে, মেমরি চাপ কমাতে একবারে একটি ফাইল কনভার্ট করুন।
সমস্যা সমাধান
- অবৈধ XML ত্রুটি: ক্লোজিং ট্যাগ নেই বা ভুল ক্যারেক্টার থাকতে পারে। ভ্যালিডেট করে আবার চেষ্টা করুন।
- অপ্রত্যাশিত অ্যারে: প্রাকৃতিক আউটপুটের জন্য Auto, আর কঠোর কনসিসটেন্সির জন্য Force ব্যবহার করুন।
- টেক্সট নেই: “টেক্সট নোড” অপশন Keep বা Smart দিন।
- অ্যাট্রিবিউট নেই: “অ্যাট্রিবিউট” অপশন @attributes দিন।
- ট্যাব হ্যাং/ফ্রিজ: গভীর নেস্টিং বা বড় XML মেমরি লিমিটে যেতে পারে। একবারে একটি ফাইল কনভার্ট করুন এবং ভারী ট্যাব বন্ধ করুন।
প্রায় জিজ্ঞাসিত প্রশ্ন
না। XML থেকে JSON রূপান্তর আপনার ব্রাউজারেই লোকালভাবে হয়। আপনার XML ফাইল কখনোই FileYoga সার্ভারে আপলোড হয় না, এবং JSON আউটপুট আপনার ডিভাইসেই তৈরি হয়।
আপনি যদি অ্যাট্রিবিউট রাখেন, তাহলে এগুলো এলিমেন্ট অবজেক্টের ভেতরে @ কী-এর নিচে থাকে।
উদাহরণ: {"@":{"id":"123","type":"primary"}}। “অ্যাট্রিবিউট বাদ দিন” দিলে এগুলো রিমুভ হয়।
টেক্সট Keep করলে তা #text এর নিচে থাকে। স্মার্ট মোড আউটপুটকে আরও পরিষ্কার করে:
কোনো এলিমেন্টে শুধু টেক্সট থাকলে (চাইল্ড এলিমেন্ট নেই এবং অ্যাট্রিবিউট নেই), সেটি অবজেক্ট না হয়ে সরাসরি স্ট্রিং হয়।
তবে অ্যাট্রিবিউট বা চাইল্ড থাকলে, স্মার্ট মোডেও টেক্সট #text এর নিচে থাকে।
“অটো” মোডে একই প্যারেন্টের অধীনে সিবলিং ট্যাগ একাধিকবার থাকলে তখনই অ্যারে হয়। “ফোর্স অ্যারে” মোডে একটিই আইটেম থাকলেও চাইল্ড গ্রুপগুলো সবসময় অ্যারে হিসেবে আউটপুট হয়—এতে স্কিমা কনসিসটেন্ট থাকে।
না। এটাকে “mixed content” বলা হয়। কোনো এলিমেন্টে নেস্টেড এলিমেন্ট এবং অর্থপূর্ণ টেক্সট—দুটোই থাকলে,
কনভার্টার স্ট্রাকচার্ড চাইল্ডগুলো কী হিসেবে রাখে এবং টেক্সটকে #text এর নিচে সংরক্ষণ করে (যদি টেক্সট ড্রপ না করা হয়)।
এতে আউটপুট পূর্বানুমেয় এবং রিভার্সযোগ্য থাকে।
CDATA টেক্সট কনটেন্ট হিসেবে ধরা হয়। টেক্সট অন থাকলে CDATA সাধারণ টেক্সটের মতোই আউটপুটে আসে
(স্মার্ট মোডে স্ট্রিং হিসেবে, অথবা অ্যাট্রিবিউট/চাইল্ড থাকলে #text এর নিচে)।
না। নেমস্পেসসহ ট্যাগ নাম যেমন আছে তেমনই থাকে, প্রিফিক্সসহ (যেমন ns:Item)।
প্রিফিক্স বাদ দিতে হলে আগে JSON এক্সপোর্ট করুন, তারপর আপনার অ্যাপ/স্ক্রিপ্টে কী রিনেম করুন।
“Invalid XML” সাধারণত ক্লোজিং ট্যাগ না থাকা, অবৈধ ক্যারেক্টার, বা ভুল এনটিটি বোঝায়। স্ট্রাকচার অপ্রত্যাশিত হলে অনেক সময় কারণ হয় পুনরাবৃত্ত সিবলিং ট্যাগ (অ্যারে), mixed content, বা আপনি যে অ্যাট্রিবিউট ড্রপ করেছেন। আগে অ্যাট্রিবিউট অন করে এবং Auto arrays দিয়ে চেষ্টা করুন।
কৃত্রিম কোনো সীমা নেই। তবে খুব বড় XML বা গভীরভাবে নেস্টেড স্ট্রাকচার ব্রাউজারের মেমরি লিমিটে যেতে পারে বা ডিভাইস ধীর করতে পারে। এমন হলে একবারে একটি ফাইল কনভার্ট করুন, ভারী ট্যাব বন্ধ করুন, বা XML সরল করে নিন।