JSON থেকে YAML কনভার্টার
Kubernetes, Docker Compose, GitHub Actions বা Ansible-এর জন্য JSON-কে পরিষ্কার, মানুষের পড়ার উপযোগী YAML-এ রূপান্তর করুন, ইনডেন্টেশন, স্টাইল ও কোটের ওপর পূর্ণ নিয়ন্ত্রণসহ।
ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না
JSON থেকে YAML কীভাবে ব্যবহার করবেন
- বাঁ দিকের বক্সে JSON পেস্ট করুন বা একটি
.jsonফাইল খুলুন। - টাইপ করার সাথে সাথে ডান দিকে YAML দেখা যায়।
- ইনডেন্ট (২ বা ৪ স্পেস) ও স্টাইল বেছে নিন: block (প্রতি লাইনে একটি কী) অথবা নির্দিষ্ট নেস্টিং লেভেল থেকে flow (
{a: 1}/[x, y])। - একটি কোটিং স্টাইল বেছে নিন, আর বর্ণানুক্রম চাইলে কী সাজান টিক দিন।
- YAML কপি বা ডাউনলোড করুন। অবৈধ JSON লাইন, কলাম ও সম্ভাব্য কারণসহ জানানো হয়।
কেন JSON থেকে YAML-এ রূপান্তর করবেন?
JSON মেশিন ও API-এর জন্য আদর্শ, কিন্তু YAML মানুষের পড়া ও সম্পাদনার জন্য সহজ: কোনো বন্ধনী নেই, কোট বাধ্যতামূলক নয় এবং কমেন্ট সমর্থিত। Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI ও Ansible-সহ বেশিরভাগ ইনফ্রাস্ট্রাকচার টুল YAML-এ কনফিগার করা হয়, অথচ আপনার শুরুর ডেটা (API আউটপুট, kubectl get -o json, Terraform state) প্রায়ই JSON।
Block বনাম flow স্টাইল
Block স্টাইল প্রতিটি কী ও তালিকা-আইটেম আলাদা লাইনে রাখে এবং কনফিগ ফাইলের প্রচলিত পছন্দ। Flow স্টাইল JSON-এর মতো ইনলাইন {} ও [] ব্যবহার করে এবং ছোট শেষ-স্তরের কাঠামো সংক্ষিপ্ত রাখে। “লেভেল ২ থেকে Flow” উপরের দুই লেভেল block স্টাইলে রাখে এবং আরও গভীর সবকিছু ইনলাইন করে, যা পোর্ট বা env var-এর মতো ছোট অবজেক্টের লম্বা তালিকার জন্য ভালো কাজ করে।
নিরাপদ কোটিং
যেসব string YAML পার্সার ভুল বুঝতে পারে সেগুলো স্বয়ংক্রিয়ভাবে কোট করা হয়: 'no', 'on', '1.0', 'null'-এর মতো মান, শুরুতে * বা & থাকা string, এবং : যুক্ত string। আপনার স্টাইল গাইড প্রতিটি string কোট করতে বললে সবসময় সিঙ্গেল বা সবসময় ডাবল বেছে নিন।
YAML 1.1 বনাম 1.2-এর ফাঁদ
এই কনভার্টার বর্তমান স্পেসিফিকেশন YAML 1.2 মেনে চলে। অনেক পুরনো টুল (PyYAML, Ruby-র Psych, Kubernetes ও Ansible-এর কিছু সংস্করণ) এখনো YAML 1.1 পড়ে, যেখানে নিয়ম আলাদা:
- নরওয়ে সমস্যা: YAML 1.1-এ
country: noমানেfalse, তাই নরওয়ের দেশ-কোডNOহারিয়ে যায়।yes,on,off,yওn-এর ক্ষেত্রেও একই। YAML 1.2 শুধুtrueওfalse-কে boolean ধরে। - অক্টাল সংখ্যা: 1.1-এ
0755অক্টাল, কিন্তু 1.2-এ সাধারণ দশমিক; 1.2 ব্যবহার করে0o755। নিরাপদ থাকতে ফাইল মোড কোট করুন। - ষাটভিত্তিক সংখ্যা: 1.1-এ
22:30সংখ্যা 1350 হিসেবে পার্স হতে পারে। সময় ও"8080:80"-এর মতো পোর্ট ম্যাপিং কোট করুন।
JSON → YAML দিকে দ্ব্যর্থক string ('no', 'on', 'y') স্বয়ংক্রিয়ভাবে কোট করা হয়, তাই তৈরি YAML দুটি সংস্করণেই একই অর্থে পড়া হয়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
রূপান্তর কি ক্ষতিহীন?
কিছু string কোট করা আর কিছু নয় কেন?
'yes', '123' বা বিশেষ অক্ষরযুক্ত string। পড়ার সুবিধার জন্য বাকি সব সাধারণ রাখা হয়।আউটপুটে কি কমেন্ট যোগ করা যায়?
# comments যোগ করতে পারেন।