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