ভাষা বেছে নিন

অনলাইন JSON থেকে XML রূপান্তরকারী

আপনার JSON ডেটাকে সহজেই XML-এ রূপান্তর করুন। কাস্টম রুট এলিমেন্ট, অ্যাট্রিবিউট প্রিফিক্স এবং ইন্ডেন্টেশন বিকল্পসহ আপনার আউটপুট নিয়ন্ত্রণ করুন।

Mehmet Demiray (মেহমেত দেমিরায়) প্রকাশিত আপডেট হয়েছে
শেয়ার করুন
প্রতিটি নেস্টিং লেভেলের জন্য স্পেসের সংখ্যা

কেন এখনও JSON থেকে XML রূপান্তর প্রয়োজন?

আধুনিক ওয়েব অ্যাপ্লিকেশন এবং API-এর জগতে JSON (JavaScript Object Notation) ডেটা বিনিময়ের প্রধান মাধ্যম হয়ে উঠেছে। এর সরল গঠন এবং সহজে ব্যবহারযোগ্যতার কারণে ডেভেলপারদের কাছে এটি অত্যন্ত জনপ্রিয়। কিন্তু, প্রযুক্তি জগতে এখনও অনেক ক্ষেত্র রয়েছে যেখানে XML (eXtensible Markup Language) অপরিহার্য। এই কারণেই JSON থেকে XML রূপান্তরকারী টুলের প্রয়োজনীয়তা এখনও ফুরিয়ে যায়নি।

অনেক পুরনো বা লেগ্যাসি এন্টারপ্রাইজ সিস্টেমে ডেটা আদান-প্রদানের জন্য XML ব্যবহার করা হয়। বিশেষ করে ব্যাংকিং, বীমা, এবং টেলিকম সেক্টরের মতো জায়গায়, যেখানে সিস্টেমগুলো বহু বছর ধরে চালু আছে, সেখানে XML ফরম্যাটেই ডেটা প্রসেস করা হয়। নতুন অ্যাপ্লিকেশনগুলো JSON আউটপুট দিলেও, এই পুরনো সিস্টেমগুলোর সাথে সংযোগ স্থাপনের জন্য সেই ডেটাকে XML-এ রূপান্তর করতে হয়। এছাড়া, SOAP (Simple Object Access Protocol) ভিত্তিক ওয়েব সার্ভিসগুলো সম্পূর্ণরূপে XML-এর উপর নির্ভরশীল। যদি আপনার কোনো অ্যাপ্লিকেশনকে এমন কোনো SOAP API-এর সাথে কাজ করতে হয়, তবে আপনাকে অবশ্যই JSON ডেটাকে XML-এ পরিবর্তন করতে হবে।

সরকারি অনেক প্রতিষ্ঠানে ডেটা জমা দেওয়ার বা তথ্য বিনিময়ের জন্য একটি নির্দিষ্ট XML স্কিমা অনুসরণ করতে হয়। যেমন, ট্যাক্স ফাইলিং বা বাণিজ্যিক ডেটা রিপোর্টিং-এর ক্ষেত্রে এটি দেখা যায়। আমাদের এই টুলটি ডেভেলপার এবং ইন্টিগ্রেশন ইঞ্জিনিয়ারদের জন্য একটি সেতু হিসেবে কাজ করে, যা আধুনিক JSON-ভিত্তিক সিস্টেম এবং ঐতিহ্যবাহী XML-ভিত্তিক সিস্টেমের মধ্যে ডেটা প্রবাহকে সহজ করে তোলে। এটি ব্যবহার করে আপনি সহজেই আপনার JSON ডেটাকে প্রয়োজনীয় XML ফরম্যাটে পরিবর্তন করে নিতে পারেন।

JSON থেকে XML-এ ডেটা কীভাবে ম্যাপ করা হয়?

JSON এবং XML দুটি ভিন্ন কাঠামোর ডেটা ফরম্যাট, তাই একটি থেকে অন্যটিতে রূপান্তরের সময় কিছু নির্দিষ্ট নিয়ম অনুসরণ করা হয়। JSON থেকে XML টুলটি এই নিয়মগুলো স্বয়ংক্রিয়ভাবে প্রয়োগ করে ডেটাকে সঠিকভাবে ম্যাপ করে। মূল ম্যাপিং প্রক্রিয়াটি বোঝা আপনার আউটপুটকে নিয়ন্ত্রণ করতে সাহায্য করবে।

প্রথমত, JSON-এর অবজেক্ট XML-এর এলিমেন্টে রূপান্তরিত হয়। একটি JSON অবজেক্টের প্রতিটি কী-ভ্যালু পেয়ার (key-value pair) একটি XML ট্যাগে পরিণত হয়। যেমন, { "নাম": "করিম শেখ", "বয়স": 35 } এই JSON অবজেক্টটি XML-এ <নাম>করিম শেখ</নাম><বয়স>35</বয়স>-এর মতো দেখতে হবে। লক্ষ্য করুন যে সম্পূর্ণ XML ফাইলটির একটিমাত্র রুট এলিমেন্ট থাকতে হয়, যা আপনি টুলে নির্দিষ্ট করে দিতে পারেন।

দ্বিতীয়ত, JSON-এর অ্যারে (array) XML-এ পৌনঃপুনিক এলিমেন্ট (repeating elements) হিসেবে দেখানো হয়। XML-এর নিজস্ব কোনো অ্যারে কাঠামো নেই। তাই, "কর্মচারী": [{"নাম": "রহিম"}, {"নাম": "সুমন"}] এই JSON অ্যারেটি রূপান্তরিত হলে এমন হতে পারে: <কর্মচারী><নাম>রহিম</নাম></কর্মচারী><কর্মচারী><নাম>সুমন</নাম></কর্মচারী>। এখানে 'কর্মচারী' কী-টি প্রতিটি অ্যারে আইটেমের জন্য একটি প্যারেন্ট ট্যাগ হিসেবে পুনরাবৃত্তি হয়েছে।

সবশেষে, নেস্টেড বা একাধিক স্তরযুক্ত JSON অবজেক্টগুলোও XML-এ নেস্টেড এলিমেন্ট হিসেবে রূপান্তরিত হয়। যেমন, { "অর্ডার": { "আইডি": "A123", "পণ্য": { "নাম": "লাক্স সাবান", "দাম": 45 } } } রূপান্তরিত হয়ে <অর্ডার><আইডি>A123</আইডি><পণ্য><নাম>লাক্স সাবান</নাম><দাম>45</দাম></পণ্য></অর্ডার> কাঠামো তৈরি করবে। এই রূপান্তর প্রক্রিয়াটি সঠিকভাবে বোঝার জন্য, আপনি প্রথমে একটি JSON ফরম্যাটার ব্যবহার করে আপনার JSON কোডটি যাচাই করে নিতে পারেন।

আপনার প্রয়োজন অনুযায়ী XML আউটপুট ফরম্যাট করুন

যেকোনো ডেটা রূপান্তরের ক্ষেত্রে আউটপুটের বিন্যাস বা ফরম্যাটিং অত্যন্ত গুরুত্বপূর্ণ। বিভিন্ন সিস্টেমের চাহিদা ভিন্ন হওয়ায় JSON থেকে XML টুলটি আপনাকে আউটপুট কাস্টমাইজ করার জন্য একাধিক বিকল্প প্রদান করে। এই অপশনগুলো ব্যবহার করে আপনি আপনার প্রয়োজন অনুযায়ী XML ফাইল তৈরি করতে পারেন।

১. XML ডিক্লারেশন (XML Declaration): অনেক XML পার্সার ফাইলের শুরুতে <?xml version="1.0" encoding="UTF-8"?>-এর মতো একটি ডিক্লারেশন আশা করে। এটি XML-এর সংস্করণ এবং ক্যারেক্টার এনকোডিং নির্দিষ্ট করে। কিছু সিস্টেমে এটি বাধ্যতামূলক, আবার কিছুর জন্য এটি অপ্রয়োজনীয়। আমাদের টুলে আপনি একটি চেকবক্সের মাধ্যমে এই ডিক্লারেশনটি যোগ বা বাদ দিতে পারেন।

২. ইনডেনটেশন (Indentation): ইন্ডেনটেশন বা যথাযথ স্পেসিং ছাড়া একটি বড় XML ফাইল পড়া প্রায় অসম্ভব। এটি কোডের কাঠামোকে সুস্পষ্ট করে এবং ডিবাগিং সহজ করে তোলে। আপনি আপনার পছন্দ অনুযায়ী ইন্ডেন্টের জন্য স্পেসের সংখ্যা (যেমন, ২ বা ৪) বা ট্যাব নির্বাচন করতে পারেন। এর ফলে আউটপুটটি অনেক বেশি পাঠযোগ্য (human-readable) হয়।

৩. অ্যাট্রিবিউট প্রিফিক্স (Attribute Prefix): XML-এ ডেটা শুধু এলিমেন্টের ভিতরেই নয়, অ্যাট্রিবিউট হিসেবেও রাখা যায়। যেমন <person id="101">। JSON-এর সাধারণ কী-ভ্যালু কাঠামো থেকে অ্যাট্রিবিউট তৈরি করার জন্য এই টুল একটি প্রিফিক্স ব্যবহার করার সুবিধা দেয়। উদাহরণস্বরূপ, আপনি যদি @ কে অ্যাট্রিবিউট প্রিফিক্স হিসেবে সেট করেন, তাহলে { "person": { "@id": "101", "name": "রিমা" } } এই JSON কোডটি <person id="101"><name>রিমা</name></person>-এ রূপান্তরিত হবে। এটি নির্দিষ্ট XML স্কিমা অনুসরণ করার জন্য খুব দরকারি।

JSON থেকে XML রূপান্তরের সাধারণ সমস্যা ও সমাধান

JSON থেকে XML-এ ডেটা রূপান্তর করার সময় কিছু সাধারণ সমস্যার সম্মুখীন হতে পারেন। এই সমস্যাগুলো সম্পর্কে আগে থেকে জানা থাকলে আপনি সহজেই সেগুলোর সমাধান করতে পারবেন।

অবৈধ XML এলিমেন্টের নাম: XML-এর ট্যাগ বা এলিমেন্টের নাম দেওয়ার কিছু নিয়ম আছে। যেমন, নাম সংখ্যা দিয়ে শুরু হতে পারে না (<1stPlace> অবৈধ) এবং স্পেস বা কিছু বিশেষ চিহ্ন (!, *, %) ব্যবহার করা যায় না। কিন্তু JSON কী-এর ক্ষেত্রে এমন কোনো কঠোর নিয়ম নেই। যদি আপনার JSON-এ "1stPlace": "গোল্ড" এমন কোনো কী থাকে, তবে রূপান্তরের সময় এটি একটি অবৈধ XML ট্যাগ তৈরি করবে। এর সমাধান হলো, রূপান্তরের আগে আপনার JSON কী-গুলো পরিবর্তন করে XML-সম্মত নামকরণ করা।

null ভ্যালুর রূপান্তর: JSON-এ null একটি বৈধ ভ্যালু, যা কোনো কিছুর অনুপস্থিতি বোঝায়। XML-এর সরাসরি null-এর সমতুল্য কিছু নেই। আমাদের JSON থেকে XML টুলটি "মাঝেরনাম": null-এর মতো একটি JSON পেয়ারকে একটি খালি এলিমেন্টে রূপান্তরিত করে, যেমন <মাঝেরনাম></মাঝেরনাম> বা <মাঝেরনাম/>। এটি বেশিরভাগ সিস্টেমের জন্য উপযুক্ত, তবে আপনার সিস্টেম যদি এটি ভিন্নভাবে পরিচালনা করে, তবে সেদিকে খেয়াল রাখতে হবে।

বিশেষ ক্যারেক্টারের এস্কেপিং: XML-এর কিছু অক্ষর (<, >, &, ', ") সিনট্যাক্সের অংশ হিসেবে সংরক্ষিত। যদি আপনার JSON স্ট্রিং-এর ভ্যালুতে এই অক্ষরগুলো থাকে, তবে সেগুলোকে অবশ্যই এস্কেপ (escape) করতে হবে। যেমন, & চিহ্নটি &amp; দিয়ে প্রতিস্থাপন করতে হয়। আমাদের টুলটি স্বয়ংক্রিয়ভাবে এই এস্কেপিং করে থাকে, তাই আপনাকে এটি নিয়ে চিন্তা করতে হবে না। এটি নিশ্চিত করে যে আপনার চূড়ান্ত XML ফাইলটি সবক্ষেত্রে বৈধ থাকবে। ডেটা রূপান্তরের এই প্রক্রিয়াটি উল্টোভাবেও করা যায়, যা আমাদের XML থেকে JSON রূপান্তরকারী টুলের মাধ্যমে সম্ভব।

JSON Array কীভাবে XML-এ রূপান্তরিত হয়?

JSON-এর অন্যতম শক্তিশালী বৈশিষ্ট্য হলো অ্যারে বা তালিকা সংরক্ষণ করার ক্ষমতা। কিন্তু XML-এর কোনো অন্তর্নির্মিত (native) অ্যারে কাঠামো নেই। তাই, JSON অ্যারে যখন XML-এ রূপান্তরিত হয়, তখন একটি নির্দিষ্ট প্যাটার্ন অনুসরণ করা হয়। এই প্রক্রিয়াটি বোঝা অত্যন্ত জরুরি, কারণ এটি আপনার আউটপুট ফাইলের গঠন নির্ধারণ করে।

সাধারণত, একটি JSON অ্যারের কী (key) XML-এ প্রতিটি আইটেমের জন্য প্যারেন্ট এলিমেন্ট হিসেবে পুনরাবৃত্তি হয়। উদাহরণস্বরূপ, { "পণ্য": ["চাল", "ডাল", "তেল"] } এই JSON কোডটি বিবেচনা করুন। এখানে পণ্য হলো কী এবং এর ভ্যালু একটি স্ট্রিং-এর অ্যারে। XML-এ রূপান্তরিত হলে এটি এমন দেখাবে: <পণ্য>চাল</পণ্য> <পণ্য>ডাল</পণ্য> <পণ্য>তেল</পণ্য>

লক্ষ্য করুন, পণ্য ট্যাগটি অ্যারের প্রতিটি উপাদানের জন্য একবার করে ব্যবহার করা হয়েছে।

আরও একটি সাধারণ উদাহরণ হলো অবজেক্টের অ্যারে। ধরা যাক, আপনার কাছে ছাত্রদের একটি তালিকা আছে: { "ছাত্র": [ { "নাম": "আকাশ", "রোল": 10 }, { "নাম": "নদী", "রোল": 11 } ] }। এটি যখন XML-এ রূপান্তরিত হবে, তখন এর গঠন হবে নিম্নরূপ: <ছাত্র> <নাম>আকাশ</নাম> <রোল>10</রোল> </ছাত্র> <ছাত্র> <নাম>নদী</নাম> <রোল>11</রোল> </ছাত্র>

এখানেও, ছাত্র এলিমেন্টটি অ্যারের প্রতিটি অবজেক্টের জন্য পুনরাবৃত্তি হয়েছে এবং প্রতিটি অবজেক্টের কী-ভ্যালু পেয়ারগুলো তার মধ্যে নেস্টেড এলিমেন্ট হিসেবে স্থান পেয়েছে। এই পৌনঃপুনিক কাঠামোটিই হলো XML-এ তালিকা বা অ্যারে প্রকাশ করার স্বীকৃত পদ্ধতি।

JSON থেকে XML রূপান্তরে কাস্টম রুট এলিমেন্ট সেট করার উপায়

প্রতিটি বৈধ XML ডকুমেন্টের একটি এবং কেবলমাত্র একটি রুট এলিমেন্ট (root element) থাকতে হয়। এই এলিমেন্টটি অন্য সব এলিমেন্টকে ধারণ করে এবং ডকুমেন্টের সূচনা ও সমাপ্তি নির্দেশ করে। JSON-এর এমন কোনো একক রুট ধারণার বাধ্যবাধকতা নেই। একারণে, JSON থেকে XML রূপান্তরকারী টুলটি আপনাকে একটি রুট এলিমেন্টের নাম নির্দিষ্ট করার সুযোগ দেয়, যা আপনার আউটপুটকে একটি বৈধ XML কাঠামো প্রদান করে।

একটি কাস্টম রুট এলিমেন্ট সেট করার প্রক্রিয়াটি খুবই সহজ:

১. প্রথমে, আপনার JSON ডেটাটি ইনপুট টেক্সটবক্সে লিখুন বা পেস্ট করুন। নিশ্চিত করুন যে আপনার JSON কোডটি বৈধ। প্রয়োজনে, আপনি রূপান্তরের আগে একটি JSON ভ্যালিডেটর ব্যবহার করতে পারেন।

২. ইনপুট বক্সের নিচে অপশনগুলোর মধ্যে "রুট এলিমেন্টের নাম" (Root Element Name) বা সমতুল্য একটি ফিল্ড দেখতে পাবেন।

৩. এই ফিল্ডে আপনার কাঙ্ক্ষিত রুট এলিমেন্টের নাম টাইপ করুন। যেমন, আপনি যদি পণ্যের ডেটা রূপান্তর করেন, তবে products বা পণ্যতালিকা নামটি ব্যবহার করতে পারেন। যদি কোনো নাম না দেন, টুলটি সাধারণত root-এর মতো একটি ডিফল্ট নাম ব্যবহার করবে।

৪. এরপর "রূপান্তর" বোতামে ক্লিক করলেই আপনার দেওয়া নামে রুট এলিমেন্টসহ XML আউটপুট তৈরি হয়ে যাবে। যেমন, রুট এলিমেন্ট হিসেবে পণ্যতালিকা দিলে আপনার আউটপুট <পণ্যতালিকা>...</পণ্যতালিকা> দিয়ে আবৃত থাকবে।

এই বৈশিষ্ট্যটি বিশেষভাবে কার্যকর যখন আপনাকে কোনো নির্দিষ্ট XML স্কিমা (Schema) বা DTD (Document Type Definition) অনুসরণ করতে হয়, যেখানে রুট এলিমেন্টের নাম পূর্বনির্ধারিত থাকে।

যেগুলোর উত্তর আমরা সবচেয়ে বেশি দিই।

JSON অ্যারে XML-এ কীভাবে রূপান্তরিত হয়?

আমাদের "JSON থেকে XML" টুলে, JSON অ্যারের প্রতিটি আইটেম একই নামের XML এলিমেন্ট হিসাবে রূপান্তরিত হয়। যেমন, {"users": ["আলি", "বেলা"]} এই JSON কোডটি <users>আলি</users><users>বেলা</users> এইরকম XML তৈরি করবে। যদি অ্যারের মধ্যে একাধিক অবজেক্ট থাকে, তাহলে প্রতিটি অবজেক্টের জন্য একই নামের ট্যাগ বারবার তৈরি হবে।

আমি কি নিজের ইচ্ছামত রুট এলিমেন্ট (root element) ব্যবহার করতে পারি?

হ্যাঁ, অবশ্যই পারেন। আমাদের টুলে "রুট এলিমেন্ট" নামের একটি অপশন রয়েছে। ডিফল্টভাবে <root> ট্যাগ ব্যবহার করা হয়, কিন্তু আপনি সেই ফিল্ডে আপনার পছন্দের যেকোনো বৈধ XML এলিমেন্টের নাম লিখে দিতে পারেন। এতে আপনার আউটপুট XML ফাইলটি সেই কাস্টম রুট এলিমেন্টের ভেতরে তৈরি হবে, যা অনেক সিস্টেমের জন্য জরুরি।

আমার JSON কী (key) যদি সংখ্যা দিয়ে শুরু হয়, তাহলে কী হবে?

XML এলিমেন্টের নাম সংখ্যা বা কিছু বিশেষ চিহ্ন দিয়ে শুরু হতে পারে না। যদি আপনার JSON কী এই নিয়ম না মানে, আমাদের টুল স্বয়ংক্রিয়ভাবে সেটিকে একটি বৈধ নামে পরিবর্তন করার চেষ্টা করবে। তবে, সবচেয়ে ভালো হয় যদি আপনি শুরুতেই আপনার JSON কী-গুলো XML নামকরণের নিয়ম মেনে তৈরি করেন। এতে কনভার্সনের পর কোনো অপ্রত্যাশিত সমস্যা হবে না।

JSON ফাইলের `null` ভ্যালুগুলো XML-এ কীভাবে দেখানো হয়?

যখন আমাদের "JSON থেকে XML" টুলটি আপনার JSON ডেটাতে কোনো null ভ্যালু পায়, তখন সেটিকে একটি খালি (empty) XML এলিমেন্টে রূপান্তরিত করে। উদাহরণস্বরূপ, {"name": "Rahim", "age": null} এই JSON কোডটি <name>Rahim</name><age/> এইরকম XML তৈরি করবে। age এলিমেন্টটি এখানে খালি থাকবে, যা null ভ্যালুকে নির্দেশ করে।

বিশেষ ক্যারেক্টার (special characters) যেমন `&` বা `<` কি ঠিকভাবে হ্যান্ডেল করা হয়?

হ্যাঁ, আমাদের টুলটি XML-এর জন্য সংরক্ষিত বিশেষ ক্যারেক্টারগুলো স্বয়ংক্রিয়ভাবে এস্কেপ (escape) করে। যেমন, আপনার JSON ভ্যালুতে & থাকলে তা &amp; হয়ে যাবে এবং < থাকলে &lt; হবে। এর ফলে আপনার তৈরি করা XML ফাইলটি সব জায়গায় নির্ভুলভাবে পার্স (parse) করা যাবে এবং কোনো সিনট্যাক্স এরর হবে না।

আজকাল তো সবাই JSON ব্যবহার করে, তাহলে XML-এ কনভার্ট করার দরকারটা কী?

যদিও আধুনিক সিস্টেমে JSON বেশি জনপ্রিয়, অনেক পুরোনো বা এন্টারপ্রাইজ-স্তরের সিস্টেমে (যেমন SOAP APIs, সরকারি ডেটা ফিড, বা কিছু লিগ্যাসি ব্যাংক সিস্টেম) এখনও XML ব্যবহার করা হয়। বিভিন্ন সিস্টেমের মধ্যে ডেটা আদান-প্রদান করার জন্য বা পুরোনো সিস্টেমের সাথে নতুন অ্যাপ্লিকেশনকে যুক্ত করার জন্য প্রায়ই JSON থেকে XML-এ ডেটা রূপান্তরের প্রয়োজন হয়। এর উল্টোটাও মাঝে মাঝে দরকার হয়, যার জন্য আমাদের XML থেকে JSON কনভার্টার টুলটি ব্যবহার করতে পারেন।

আউটপুট XML ফাইলটিকে সুন্দরভাবে ইন্ডেন্ট (indent) করার কোনো অপশন আছে কি?

হ্যাঁ, আছে। আমাদের টুলে "ইন্ডেন্টেশন" (Indentation) নামে একটি অপশন পাবেন। সেখানে আপনি স্পেস (space) বা ট্যাব (tab) বেছে নিতে পারেন এবং ইন্ডেন্টের পরিমাণও নির্দিষ্ট করে দিতে পারেন। এটি আপনার XML কোডকে অনেক বেশি পাঠযোগ্য (readable) করে তোলে, যা ডিবাগিং বা পর্যালোচনার জন্য খুবই দরকারি। ভালো ফরম্যাটিং ডেটা বুঝতে সাহায্য করে, ঠিক যেমন আমাদের JSON ফরম্যাটার টুলটি করে।