XML থেকে JSON রূপান্তর Extensible Markup Language ↔ JavaScript Object Notation বিনামূল্যে অনলাইন নিরাপদ
একটি XML ফাইল ছাড়ুন আর JSON নিয়ে যান। পড়া ও লেখা দুটোই এখানে, আপনার ব্রাউজারে হয়, তাই ফাইলটি যন্ত্র ছাড়ে না — আর এই পারাপারে কী টিকে থাকে আর কী থাকে না, তা নিচে লেখা আছে, আপনার নিজে আবিষ্কার করার জন্য ফেলে রাখা নয়।
আপনার ফাইল রূপান্তর করুন
এখানে একটি XML ফাইল ছাড়ুন, বা একটি বেছে নিন।
আপনার ফাইল এই যন্ত্র ছেড়ে যায় না। সবটাই আপনার ব্রাউজারে চলে।
কিছুই আপলোড হয় না
XML থেকে রূপান্তর
XML-এ রূপান্তর
এই বিন্যাসগুলি কোথা থেকে এসেছে
CSV সবচেয়ে পুরোনো আর সবচেয়ে কম প্রমিত: একটি সারণি, লেখার লাইন হিসেবে লেখা; সত্তরের দশক থেকে চালু, অথচ লিখিতভাবে বর্ণিত হল কেবল ২০০৫ সালে — ততদিনে প্রতিটি প্রোগ্রাম নিজে নিজেই ঠিক করে ফেলেছে বিভাজক কী আর উদ্ধৃতিচিহ্ন কখন বসবে। XML ১৯৯৮ সালে SGML থেকে বেড়ে ওঠে, সেইসব দলিলের জন্য যাদের কঠোর গঠন বইতে হয় এবং কোনো ছকের বিপরীতে যাচাই হতে হয়। JSON-কে ডগলাস ক্রকফোর্ড ২০০১ নাগাদ জাভাস্ক্রিপ্ট থেকে টেনে বার করেন, ইচ্ছে করেই তা ছেঁটে নামিয়ে আনেন বস্তু, তালিকা, সংখ্যা আর অক্ষরমালায় — আর সেই স্বল্পতাই ওয়েব জয়ের কারণ। YAML তার পাঠযোগ্য জ্ঞাতি, যেখানে ফাঁক ছেড়ে লেখা সেই কাজ করে যা অন্যত্র করে বন্ধনী। এদের মধ্যে রূপান্তরে একটিই কথা জরুরি: CSV সমতল, সারি ও স্তম্ভের জাল; আর JSON, XML ও YAML হল গাছ।
কোথায় এদের দেখা পাবেন
CSV সেটাই যা স্প্রেডশিট রপ্তানি করে, আর যা কোনো হিসাবরক্ষক, কোনো দোকানের মঞ্চ বা ব্যাংকের বিবরণী আপনাকে ধরিয়ে দেয়। JSON সেই ভাষা যাতে ওয়েবের সেবাগুলি কথা বলে, আর যাতে কনফিগারেশন ফাইল ক্রমেই লেখা হচ্ছে। XML টিকে আছে পুরোনো প্রাতিষ্ঠানিক ব্যবস্থায়, চালান তৈরির মানে, আর খোদ দপ্তরি বিন্যাসগুলির ভিতরে। YAML সেই জায়গা যেখানে মানুষ হাতে সেটিংস লেখে। এদের মধ্যে রূপান্তর হল সেই দৈনন্দিন কাজ, যা তথ্যকে তার জন্মস্থান থেকে প্রয়োজনের জায়গায় নিয়ে যায়।
প্রায়ই জিজ্ঞাসিত প্রশ্ন
আমার CSV এক্সেলে একটিমাত্র স্তম্ভ হিসেবে খুলল। কেন?
কারণ আপনার স্প্রেডশিট অন্য একটি বিভাজকের অপেক্ষায় ছিল। এক্সেল কম্পিউটারের আঞ্চলিক বিন্যাসের তালিকা-বিভাজক মেনে চলে, আর সেটি সেমিকোলন সেইসব জায়গায় যেখানে কমা আগে থেকেই দশমিক চিহ্ন — অর্থাৎ মহাদেশীয় ইউরোপের বড় অংশে। তখন কমা দিয়ে আলাদা করা ফাইল একটিমাত্র লেখার স্তম্ভের মতো দেখায়। ফাইলে দুবার ক্লিক না করে আমদানির জানালা ব্যবহার করুন এবং বিভাজক স্পষ্ট করে বলুন। ওই একই আঞ্চলিক বিন্যাসের কারণেই ৩.৫ কখনও তারিখ হয়ে পৌঁছয়।
আমার স্তরে স্তরে সাজানো JSON পরিপাটি স্প্রেডশিট হয় না কেন?
কারণ স্প্রেডশিট সমতল আর JSON একটি গাছ। একটি সারি প্রতি স্তম্ভে একটি মান ধরে; অথচ একটি JSON বস্তু কোনো ক্ষেত্রের ভিতরের তালিকার ভিতরে আরেকটি তালিকা ধরতে পারে। রূপান্তর মানে বেছে নেওয়া — কীভাবে সেটিকে চ্যাপটা করা হবে: হয় স্তরের নামগুলি জুড়ে একটি লম্বা স্তম্ভ-শিরোনাম বানানো, নয়তো মূল সারিটিকে প্রতিটি সন্তানের জন্য একবার করে পুনরাবৃত্তি করা। দুটোই আপস, আর কোনোটিই আপনা-আপনি ফেরানো যায় না — সেজন্যই স্প্রেডশিট থেকে আদি আকারে ফেরার জন্য সাধারণত একজন মানুষের সিদ্ধান্ত লাগে।
ফাইলের গুণমান কি কমে?
তা নির্ভর করে দুটি বিন্যাস কী ধরে রাখতে পারে তার উপর। একই জিনিস রাখে এমন বিন্যাসের মধ্যে রূপান্তর — PNG থেকে BMP, WAV থেকে FLAC — কিছুই হারায় না। জায়গা বাঁচাতে তথ্য ফেলে দেয় এমন বিন্যাসে, যেমন JPEG বা MP3-তে, রূপান্তর প্রতিবারই কিছুটা হারায়, আর ফিরিয়ে আনলেও তা ফিরে আসে না। যেখানে বাছাইয়ের সুযোগ আছে, এই পাতা সবচেয়ে ছোট ফাইল বানানোর চেয়ে মূল গুণমান ধরে রাখার দিকেই ঝোঁকে।
আমার ফাইল কি কোথাও আপলোড হয়?
না। রূপান্তর ঘটে আপনার নিজের যন্ত্রে, আপনার ব্রাউজারের ভিতরে; ফাইল সেখান থেকে কখনও বেরোয় না, আর এখানে এমন কোনো সার্ভারই নেই যা তা নিতে পারে। সেজন্যই বড় ফাইলকে আটকায় আপলোড নয়, আপনার নিজের স্মৃতি; আর সেজন্যই আপনি যা রূপান্তর করেন তার কিছুই কারও নথিতে আসতে পারে না — আমাদের নথিতেও নয়। তবে শব্দ ও চলচ্চিত্রের সরঞ্জামগুলি প্রথম ব্যবহারে তাদের রূপান্তর-এঞ্জিন এই সাইট থেকেই নামায় — প্রায় তিরিশ মেগাবাইট, একবারই; তারপরেও কাজ পুরোটাই আপনার যন্ত্রে হয়।
মানুষ কেন XML থেকে JSON রূপান্তর করে
XML হলো কাঠামোবদ্ধ ডেটার প্রবীণ রাষ্ট্রনায়ক। বিশ বছরেরও বেশি সময় ধরে এটি কনফিগারেশন ফাইল, পণ্যের ফিড, চালান, সাইটম্যাপ, সংবাদ ফিড, হিসাব প্রোগ্রামের এক্সপোর্ট আর পুরনো ওয়েব সেবার উত্তর বহন করেছে। এটি নিখুঁত আর বাক্যবহুল, খোলা ও বন্ধ হওয়া ট্যাগে লেখা। JSON তার তরুণ প্রতিদ্বন্দ্বী: হালকা, পড়তে সহজ এবং আধুনিক ওয়েব কোডের স্বাভাবিক ভাষা, যেখানে একটি প্রোগ্রাম প্রায় কোনো প্রস্তুতি ছাড়াই তা ব্যবহার করতে পারে। একটি ফিড বা এক্সপোর্ট XML হয়ে এলে আর যা তা ব্যবহার করবে সে JSON-এ কথা বললে একটি রূপান্তর দরকার। তাই মানুষ XML থেকে JSON রূপান্তর করে: তাদের ডেটা পুরনো রূপে, আর নতুন টুল চায় নতুনটি।
পরিস্থিতিগুলো সাধারণ। একজন ডেভেলপার যাঁকে একটি আধুনিক স্ক্রিপ্টে পুরনো সেবার উত্তর পড়তে হয়। একজন দোকানদার যাঁর XML-এ একটি পণ্য ফিড আছে আর একটি প্ল্যাটফর্ম যা JSON আমদানি করে। একজন ডেটা বিশ্লেষক যিনি JSON সামলায় এমন একটি টুলে একটি বড় এক্সপোর্ট দেখতে চান। একজন শিক্ষার্থী যাঁকে কোণ বন্ধনীতে ভরা একটি ফাইলের অর্থ বুঝতে হয়। প্রতিটি ক্ষেত্রে তথ্য সেখানে আছে, আর যা নেই তা কেবল আরও সুবিধাজনক একটি রূপ।
এই পাতা আপনার ব্রাউজারেই XML থেকে JSON রূপান্তর করে। আপনার ফাইল এখানেই পড়া ও লেখা হয়, তাই তা কখনও আপনার ডিভাইস ছেড়ে যায় না, যা চালান, গ্রাহকের ডেটা আর অন্য যেকোনো ব্যক্তিগত বিষয়ের জন্য গুরুত্বপূর্ণ। আর পাতাটি আগেভাগে বলে দেয় এই পারাপার কী রাখে আর কী পারে না, আপনাকে নিজে আবিষ্কার করতে না দিয়ে। XML এমন একটি ধারণা ধরে যার জন্য JSON-এর কোনো শব্দ নেই, আর তা বুঝলে চমক এড়ানো যায়। নিচে পাবেন রূপান্তর কীভাবে কাজ করে আর কী আশা করবেন।
রূপান্তর কীভাবে কাজ করে
এলিমেন্ট কী হয়, নেস্টিং নেস্টিং-ই থাকে
আপনার XML আপনার ব্রাউজারের ভেতরে পড়া হয়। এলিমেন্টের নাম কী হয়, আর এলিমেন্টের ভেতরের এলিমেন্ট অবজেক্টের ভেতরের অবজেক্ট হয়, তাই XML-এর নেস্টিংই JSON-এর নেস্টিং। ট্যাগে আপনি যে কাঠামো দেখেন তা-ই আপনি পান বন্ধনীতে।
অ্যাট্রিবিউট একটি @ দিয়ে নাম রাখে
XML এলিমেন্ট অ্যাট্রিবিউট বহন করতে পারে, খোলা ট্যাগের ভেতরে লেখা ছোট ডেটার টুকরো। JSON-এ অ্যাট্রিবিউট নেই, তাই প্রতিটি নিজের একটি কী হিসেবে রাখা হয়, নামের সামনে একটি @ দিয়ে। id অ্যাট্রিবিউটসহ book-এর মতো একটি এলিমেন্ট তার সন্তানদের কী-এর পাশে একটি কী @id দেবে। @ স্পষ্ট করে কোন কী অ্যাট্রিবিউট থেকে আর কোনটি এলিমেন্ট থেকে এসেছে।
সন্তান এলিমেন্টের পাশে টেক্সট
সন্তান এলিমেন্টের সঙ্গে একটি এলিমেন্ট ভাগ করা টেক্সট #text-এর অধীনে রাখা হয়, কারণ আর কোথাও রাখার জায়গা নেই। ডেটা ফাইলে এটি বিরল আর যেসব নথিতে গদ্য মার্কআপের সঙ্গে মেশে সেখানে সাধারণ। কী #text টেক্সট ধরে, আর অন্য কী সন্তানদের ধরে।
কী রক্ষা পায়
এলিমেন্টের নাম, নেস্টিং, অ্যাট্রিবিউট আর টেক্সট
এলিমেন্টের নাম, তাদের নেস্টিং, তাদের অ্যাট্রিবিউট আর তাদের টেক্সট সবই রক্ষা পায়। ডেটার তথ্য JSON-এ আছে, এমন রূপে যার ভেতর দিয়ে প্রোগ্রাম হেঁটে যেতে পারে।
যা একবার আসে তার ক্রম
এলিমেন্টগুলো ভিন্ন হলে যে ক্রমে লেখা হয়েছিল সেই ক্রম রাখে, তাই একটি শিরোনাম, লেখক আর তারিখ তালিকাভুক্ত করা রেকর্ড সেগুলো সেই ক্রমেই দেখায়।
টেক্সট হুবহু
প্রতিটি এলিমেন্টের টেক্সট যেমন লেখা তেমন রাখা হয়, তার ভেতরের ফাঁকা জায়গা, উচ্চারণ চিহ্নযুক্ত অক্ষর, প্রতীক আর অন্য বর্ণমালার অক্ষরসহ।
XML থেকে JSON রূপান্তরের আগে যা জানা দরকার
পুনরাবৃত্ত নাম অ্যারে হয়
XML এমন একটি ধারণা ধরে যার জন্য JSON-এর কোনো শব্দ নেই: এলিমেন্ট ক্রমবদ্ধ আর পুনরাবৃত্ত হতে পারে। যে নাম একবার আসে তা একটি মান হয়, আর যে নাম দুবার আসে তা একটি অ্যারে হয়। তাই তিনটি item এলিমেন্টের একটি তালিকা তিনটির অ্যারে হয়, কিন্তু একটিমাত্র item-এর একটি তালিকা কেবল একটি মান হয়, একটির অ্যারে নয়। এর অর্থ ফল ফিরে পড়লে সব সময় একই XML পাওয়া যায় না। যে প্রোগ্রাম JSON পড়ে তার উচিত যেখানে তালিকা ছোট হতে পারে সেখানে দুই রূপের জন্যই তৈরি থাকা।
মন্তব্য, প্রসেসিং নির্দেশ আর ঘোষণা বাদ যায়
মন্তব্য, প্রসেসিং নির্দেশ আর XML ঘোষণা ডেটার অংশ নয় এবং সঙ্গে আসে না। একজন ডেভেলপার মন্তব্যে যে টীকা রেখেছেন, ওপরের যে লাইন সংস্করণ আর এনকোডিং জানায়, আর একটি নির্দিষ্ট প্রোগ্রামের জন্য নির্দেশ মিলিয়ে যায়। ডেটা নিজে থাকে।
সবকিছু টেক্সট
XML-এর কোনো ধরন নেই: ট্যাগের প্রতিটি মান টেক্সট। আপনার XML-এর সংখ্যা, তারিখ আর পতাকা যেমন লেখা হয়েছিল সেই টেক্সট হিসেবে আসে। যে প্রোগ্রাম JSON পড়ে সে নিজের দরকার অনুযায়ী সেগুলো ব্যাখ্যা করবে।
এখানে XML থেকে JSON কীভাবে রূপান্তর করবেন
আপনার ফাইল যোগ করুন
XML ফাইলটি পাতায় ফেলুন বা আপনার ডিভাইস থেকে বাছুন। এটি আপনার ব্রাউজারের ভেতরে পড়া হয় এবং আপলোড হয় না।
রূপান্তর করুন
বোতাম চাপুন। সাধারণ আকারের ফাইলে এক মুহূর্ত লাগে। কাজ শেষ না হওয়া পর্যন্ত পাতা খোলা রাখুন।
ডাউনলোড করুন আর দেখে নিন
JSON ডাউনলোড করে একটি টেক্সট এডিটরে খুলুন। শুরু আর শেষ দেখুন, আর যাচাই করুন কী গুলো আপনার আশা করা নাম এবং অ্যাট্রিবিউট তাদের @ বহন করে।
XML আর JSON-এর দিকে আরও কাছ থেকে একবার
গাছ লেখার দুটি উপায়
XML ও JSON দুটিই মানের একটি গাছ বর্ণনা করে। XML তা লেখে খোলা ও বন্ধ হওয়া ট্যাগ দিয়ে, আর অ্যাট্রিবিউট ও মিশ্র বিষয়বস্তু অনুমোদন করে। JSON তা লেখে বন্ধনী দিয়ে, আর কেবল অবজেক্ট, তালিকা, স্ট্রিং, সংখ্যা, বুলিয়ান ও null জানে। ডেটার ক্ষেত্রে, যেমন রেকর্ড ও সেটিং, তারা ভালো মেলে, আর নথির ক্ষেত্রে, যেমন একটি ওয়েব পাতা বা বই, যেখানে টেক্সট ও মার্কআপ জড়াজড়ি, তারা খারাপভাবে মেলে।
ঘুরে আসা কেন নিশ্চিত নয়
XML থেকে JSON-এ যাওয়ায় একটু হারায়: পুনরাবৃত্ত মিশ্র এলিমেন্টের ক্রম, মন্তব্য, আর অ্যাট্রিবিউট ও এলিমেন্টের পার্থক্য, যা কেবল @ দিয়ে রাখা হয়। ফিরে এলে তাই ঠিক একই XML নাও পেতে পারেন। ডেটা বিনিময়ের জন্য এটি কদাচিৎ গুরুত্বপূর্ণ। নথির জন্য তা গুরুত্বপূর্ণ, আর XML-কে মাস্টার হিসেবে রাখা ভালো।
নেমস্পেস
XML নামে এমন একটি প্রিফিক্স থাকতে পারে যা তাদের একটি নেমস্পেসে বসায়, যেমন একটি নির্দিষ্ট মানের শব্দভান্ডার। এমন নাম যেমন লেখা তেমনই রাখা হয়, প্রিফিক্সসহ, তাই একটি কী পড়তে পারে dc:title। সেগুলো সমাধান বা পুনর্লিখিত হয় না।
বিস্তারিত সাধারণ পরিস্থিতি
পণ্য ফিড আর ক্যাটালগ
সরবরাহকারী আর মার্কেটপ্লেস প্রায়ই XML-এ ফিড দেয়। সেগুলো একটি আধুনিক স্ক্রিপ্টে ব্যবহার করতে বা JSON নেয় এমন প্ল্যাটফর্মে আমদানি করতে XML থেকে JSON রূপান্তর করুন আর ফল পড়ুন।
পুরনো ওয়েব সেবা
SOAP ও প্রাথমিক API-র যুগে তৈরি সেবাগুলো XML-এ উত্তর দেয়। যে স্ক্রিপ্ট তাদের উত্তর ব্যবহার করতে চায় সে JSON নিয়ে কাজ করতে পারে, যা সামলানো সহজ।
কনফিগারেশন আর সেটিং ফাইল
অনেক প্রোগ্রাম সেটিং XML হিসেবে রাখে। একটি ফাইলকে JSON-এ রূপান্তর করলে JSON-এর জন্য তৈরি একটি টুলে তা পড়তে, দুটি সংস্করণ তুলনা করতে বা একটি স্ক্রিপ্টে দিতে পারেন।
ফিড, সাইটম্যাপ আর এক্সপোর্ট
সংবাদ ফিড, সাইটম্যাপ আর হিসাব বা মজুতের প্রোগ্রামের এক্সপোর্ট XML। একটি রূপান্তর আপনাকে এমন একটি রূপ দেয় যা খোঁজা আর কোডে লোড করা সহজ।
XML থেকে JSON রূপান্তরের আগে ব্যবহারিক পরামর্শ
দেখুন XML সুগঠিত কি না
প্রতিটি ট্যাগ বন্ধ হতে হবে, আর ফাইলে একটিমাত্র রুট এলিমেন্ট থাকতে হবে। পাতা ত্রুটি জানালে XML সমস্যা হাইলাইট করে এমন একটি এডিটরে ফাইল খুলে সে যে লাইন দেখায় তা ঠিক করুন।
জানুন তালিকা কোথায় ছোট হতে পারে
আপনার XML-এ তালিকা থাকলে মনে রাখুন একটি এন্ট্রির তালিকা একটি মান হবে, একটির অ্যারে নয়। JSON পড়া কোড পরিকল্পনা করুন যাতে দুটি ক্ষেত্রই সামলায়।
অ্যাট্রিবিউট নিয়ে কী করবেন ঠিক করুন
অ্যাট্রিবিউট আসে @ সহ কী হিসেবে। আপনার প্রোগ্রাম সেগুলো অন্য নামে আশা করলে রূপান্তরের পর সেগুলো নতুন নাম দিন, অথবা প্রোগ্রাম সমন্বয় করুন।
বড় ফাইল
সবকিছু আপনার ডিভাইসে চলে, তাই খুব বড় ফাইলের মেমরি লাগে। অনেক মেগাবাইটের ফাইলের জন্য কম্পিউটার ব্যবহার করুন, আর পাতা ধীর চললে ডেটা ভাগ করুন।
রূপান্তরের আগে মানুষ যেসব প্রশ্ন করে
একটি তালিকা অ্যারে আর অন্যটি একক মান কেন?
কারণ যে নাম একবার আসে তা একটি মান হয়, আর যে নাম দুবার আসে তা একটি অ্যারে হয়। একটি এন্ট্রির তালিকা একটি একক মানের মতো দেখায়।
আমার অ্যাট্রিবিউট কোথায় গেল?
সেগুলো নামের সামনে @ সহ কী, সন্তান এলিমেন্টের কী-এর পাশে।
অন্য এলিমেন্টের পাশে বসা টেক্সট কোথায়?
#text কী-এর অধীনে, কারণ আর কোথাও রাখার জায়গা নেই।
আমার মন্তব্য নেই কেন?
মন্তব্য, প্রসেসিং নির্দেশ আর XML ঘোষণা ডেটার অংশ নয় এবং সঙ্গে আসে না।
আমার ফাইল কি আপলোড হয়?
না। রূপান্তর আপনার ব্রাউজারে চলে আর ফাইল আপনার ডিভাইস ছেড়ে যায় না।
আমি কি আবার XML-এ ফিরতে পারি?
হ্যাঁ। JSON থেকে XML একটি গাছকে আবার XML হিসেবে লেখে, যদিও ঘুরে আসা অভিন্ন হওয়ার নিশ্চয়তা নেই।
XML থেকে JSON রূপান্তরে বিচক্ষণ বাছাই
JSON, YAML নাকি টেবিল?
JSON প্রোগ্রামের জন্য মানানসই। মানুষ সম্পাদনা করে এমন কনফিগারেশনের জন্য রূপান্তরের পর JSON থেকে YAML বেশি স্বচ্ছন্দে পড়া যায়। XML আসলে অভিন্ন রেকর্ডের একটি টেবিল হলে JSON থেকে CSV বা JSON থেকে XLSX দিয়ে অনুসরণ করতে পারেন।
XML রেখে দিন
XML-ই মাস্টার। এতে মন্তব্য, ঘোষণা আর সঠিক ক্রম আছে। এটি রাখুন, আর JSON-কে সুবিধাজনক কপি হিসেবে দেখুন।
ভোক্তার কথা ভাবুন
কী JSON পড়বে তা দেখুন, আর সেই অনুযায়ী কাজ গড়ুন। নির্দিষ্ট কাঠামো আশা করা একটি স্ক্রিপ্ট XML নিয়মিত হলে লেখা সহজ।
রূপান্তরের পরে ভালো ফল পাওয়া
একটি ভিউয়ারে JSON যাচাই করুন
JSON বোঝে এমন একটি এডিটরে ফল খুলে অবজেক্টগুলো গুটিয়ে নিন। কাঠামো আপনার আশার মতো দেখালে তা সুস্থ।
কয়েকটি রেকর্ড উৎসের সঙ্গে তুলনা করুন
মাঝখান থেকে কয়েকটি রেকর্ড নিয়ে XML-এর সঙ্গে মিলিয়ে দেখুন। এতে এক মিনিট লাগে আর জানায় রূপান্তর বিশ্বস্ত।
প্রকাশের জন্য মিনিফাই করুন
ফাইল একটি ওয়েব পাতা লোড করবে আর বড় হলে এমন টুল আছে যা সাদা জায়গা সরিয়ে হালকা করে। ডেটা একই থাকে।
ভালোভাবে রূপান্তরের জন্য আপনার XML প্রস্তুত করা
কাঠামো নিয়মিত রাখুন
XML থেকে JSON রূপান্তরের সময় নিয়মিত ডেটা সবচেয়ে ভালো রূপান্তরিত হয়: একই জায়গায় একই এলিমেন্ট, তালিকা সব সময় পুনরাবৃত্ত এলিমেন্ট হিসেবে লেখা। অনিয়মিত ফাইল অনিয়মিত JSON বানায়, আর যে প্রোগ্রাম তা পড়ে তাকে সামলাতে হয়।
পারলে টেক্সট ও এলিমেন্ট মেশানো এড়ান
সন্তান এলিমেন্টের পাশে টেক্সট যায় #text-এর অধীনে। এটি সঠিক, কিন্তু ফল ব্যবহার করা কঠিন করে। ডেটার জন্য টেক্সট পাতায় রাখুন, শাখার মাঝখানে নয়।
আগে একটি ছোট টুকরো দিয়ে পরীক্ষা করুন
আপনার ফাইল বড় হলে প্রথম রেকর্ডগুলো একটি পরীক্ষার ফাইলে নিয়ে সেটি রূপান্তর করুন। ফলে একটি দ্রুত নজর দেখায় আকার আপনার আশার মতো কি না।
XML থেকে JSON রূপান্তরের পর JSON পড়া
কাঠামোর ভেতর দিয়ে হাঁটুন, আন্দাজ করবেন না
ফলের আকার XML-এর আকারের প্রতিচ্ছবি, তাই বোঝার সেরা উপায় দুটি পাশাপাশি খোলা। রুট এলিমেন্ট খুঁজুন, যা সর্বোচ্চ স্তরের কী হয়, আর একটি রেকর্ড অনুসরণ করে তার পাতা পর্যন্ত যান। XML থেকে JSON রূপান্তরের পর এই দশ মিনিটের হাঁটা কোডে ঘণ্টার পর ঘণ্টার চেষ্টা-ও-ভুল বাঁচায়।
তালিকার জন্য প্রতিরক্ষামূলক কোড লিখুন
যেহেতু একটি এন্ট্রি একটি মান আর কয়েকটি এন্ট্রি একটি অ্যারে, সবচেয়ে নিরাপদ অভ্যাস হলো যা পড়েন তা মুড়ে নেওয়া: অ্যারে না হলে একটিতে রাখুন। পাঠকের শুরুতে এক লাইন কোড বাকিটা সহজ করে, আর যে দিন কোনো ফিডে কেবল একটি পণ্য থাকে সেদিন আপনার প্রোগ্রাম আর ভাঙে না।
অ্যাট্রিবিউট যত্নে সামলান
@ দিয়ে শুরু হওয়া কী গুলো অ্যাট্রিবিউট। কিছু টুল প্রপার্টির নাম হিসেবে এমন নাম পছন্দ করে না, তাই লোড করার সময় সেগুলোর নাম বদলাতে পারেন। অর্থ একই থাকে; কেবল লেবেল বদলায়।
উৎসের বিকল্প হিসেবে JSON সম্পাদনা করবেন না
ডেটা বদলালে XML তার উৎসে বদলান, অথবা সিস্টেমকে একটি নতুন এক্সপোর্ট বানাতে দিন, আর আবার XML থেকে JSON রূপান্তর করুন। কপি সম্পাদনা করলে দুটি ছন্দহীন হয়।
গোপনীয়তা আর সামলানো
ডেটার জন্য স্থানীয় রূপান্তর কেন গুরুত্বপূর্ণ
XML ফাইলে প্রায়ই যা ব্যক্তিগত তা থাকে: চালান, গ্রাহক, অর্ডার, সেটিং। অনেক অনলাইন কনভার্টার আপনার ফাইল সার্ভারে আপলোড করে, প্রক্রিয়া করে আর ফল ফেরত পাঠায়, আর কিছুক্ষণ একটি কপি এমন মেশিনে থাকে যা আপনার নিয়ন্ত্রণে নেই। এখানে আপনার নিজের ব্রাউজার কাজ করে, তাই ডেটা আপনার ডিভাইসেই থাকে।
আপনি চলে গেলে কী হয়
পাতা বন্ধ করলে রূপান্তরিত ফাইল ব্রাউজার থেকে মিলিয়ে যায়, তাই আগে ডাউনলোড করে নিন। আপনার ডেটার কিছুই রাখা হয় না।
কিছু ভুল হলে
পাতা বলছে XML বৈধ নয়
একটি ট্যাগ বন্ধ না হতে পারে, দুটি রুট এলিমেন্ট থাকতে পারে, অথবা XML অনুমোদন করে না এমন একটি অক্ষর থাকতে পারে। XML ত্রুটি হাইলাইট করে এমন একটি এডিটরে ফাইল খুলে সে যে লাইন দেখায় তা ঠিক করুন।
কাঠামো আমার আশার মতো নয়
একটি এন্ট্রির তালিকা, আর অ্যাট্রিবিউট ও মিশ্র টেক্সট খুঁজে দেখুন। বেশির ভাগ চমক তারা ব্যাখ্যা করে।
বড় ফাইলে পাতা জমে যায়
সবকিছু আপনার ডিভাইসে চলে, আর একটি বড় ফাইলের মেমরি লাগে। কম্পিউটারে আবার চেষ্টা করুন, অথবা ডেটা ভাগ করুন।
সম্পর্কিত টুল
একই পরিবারের টুল পাশের কাজগুলো ধরে। ফিরে যেতে JSON থেকে XML ব্যবহার করুন। কনফিগারেশন ফাইলের জন্য JSON থেকে YAML আর YAML থেকে JSON ওই দুটির মধ্যে রূপান্তর করে। টেবিলের জন্য আছে JSON থেকে CSV, CSV থেকে JSON, JSON থেকে XLSX আর XLSX থেকে JSON।
একটি কাজের উদাহরণ
ধরুন একজন সরবরাহকারী আপনাকে 800টি পণ্যের একটি XML ফাইল হিসেবে পণ্য ফিড পাঠায়, প্রতিটিতে একটি id অ্যাট্রিবিউট, একটি নাম, একটি দাম আর বিভাগের একটি তালিকা। আপনি ফাইলটি এখানে ফেলে বোতাম চাপেন। এক মুহূর্ত পরে আপনি 800টি পণ্যের একটি অ্যারেসহ একটি JSON ডাউনলোড করেন। প্রতিটির id একটি কী @id, নাম ও দাম নিজস্ব কী, আর বিভাগগুলো একটি অ্যারে গড়ে। একটিমাত্র বিভাগের কয়েকটি পণ্যের জন্য মান একটি সাদামাটা স্ট্রিং, আর আপনার আমদানি স্ক্রিপ্ট দুটি ক্ষেত্রই সামলায়। XML আপনার ফোল্ডারে সরবরাহকারীর মূল হিসেবে থাকে।
একটি সংক্ষিপ্ত চেকলিস্ট
রূপান্তরের আগে
দেখুন XML সুগঠিত। টুকে রাখুন তালিকা কোথায় ছোট হতে পারে। XML রেখে দিন।
রূপান্তরের সময়
ফাইল তৈরি না হওয়া পর্যন্ত পাতায় থাকুন।
রূপান্তরের পরে
JSON খুলুন, কী, অ্যাট্রিবিউট আর তালিকা দেখুন, এবং যে প্রোগ্রাম তা পড়বে তার সঙ্গে পরীক্ষা করুন।
সাধারণ ভুল
ধরে নেওয়া প্রতিটি তালিকা একটি অ্যারে
একটি এন্ট্রির তালিকা একটি মান হয়। পড়ার কোড লিখুন যাতে দুটিই নেয়।
নিখুঁত ঘুরে আসা আশা করা
XML থেকে JSON-এ গিয়ে আবার একই XML পাওয়ার ওপর নির্ভর করবেন না। মূলটি রেখে দিন।
সব মান টেক্সট তা ভুলে যাওয়া
XML-এর কোনো ধরন নেই। সংখ্যা আর তারিখ যে প্রোগ্রাম ব্যবহার করে তাতে রূপান্তর করুন।
আপনার ডেটা আপনার ডিভাইসেই থাকে
রূপান্তর স্থানীয়ভাবে ঘটে। আপনার ফাইল আপনার নিজের ব্রাউজার পড়ে, সেখানেই আবার লেখে আর JSON হিসেবে ফিরিয়ে দেয়। কিছুই আপলোড হয় না, তাই সার্ভারে কোনো কপি থাকে না আর অন্য কেউ তা পড়তে পারে না। ব্যক্তিগত বিষয়বস্তুর ডেটার জন্য এটাই নিরাপদ উপায়ে XML থেকে JSON রূপান্তর।
সংক্ষেপে
এখানে XML থেকে JSON রূপান্তর করতে ফাইল ফেলুন আর বোতাম চাপুন। এটি আপনার ব্রাউজারে পড়া ও লেখা হয়, তাই ফাইল কখনও আপনার ডিভাইস ছেড়ে যায় না। এলিমেন্টের নাম, তাদের নেস্টিং, তাদের অ্যাট্রিবিউট আর তাদের টেক্সট রক্ষা পায়। একটি অ্যাট্রিবিউট সামনে একটি @ দিয়ে নাম রাখে, আর সন্তান এলিমেন্টের সঙ্গে একটি এলিমেন্ট ভাগ করা টেক্সট #text-এর অধীনে রাখা হয়, কারণ আর কোথাও রাখার জায়গা নেই। XML এমন একটি ধারণা ধরে যার জন্য JSON-এর কোনো শব্দ নেই: এলিমেন্ট ক্রমবদ্ধ আর পুনরাবৃত্ত হতে পারে। যে নাম একবার আসে তা একটি মান হয় আর যে নাম দুবার আসে তা একটি অ্যারে হয়, তাই ফল ফিরে পড়লে সব সময় একই XML পাওয়া যায় না। মন্তব্য, প্রসেসিং নির্দেশ আর XML ঘোষণা ডেটার অংশ নয় এবং সঙ্গে আসে না।