YAML থেকে JSON কনভার্টার
YAML (Kubernetes manifest, Docker Compose, CI কনফিগ) পেস্ট করুন আর সঙ্গে সঙ্গে পরিষ্কার JSON পান। ত্রুটি একটি পয়েন্টারসহ ঠিক কোন লাইনে তা দেখায়।
ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না
YAML থেকে JSON কীভাবে ব্যবহার করবেন
- বাঁ দিকের বক্সে YAML পেস্ট করুন বা একটি
.yaml/.ymlফাইল খুলুন। - টাইপ করার সাথে সাথে ডান দিকে JSON দেখা যায়। আউটপুটের জন্য ২ স্পেস, ৪ স্পেস বা ট্যাব বেছে নিন।
- কী-গুলো বর্ণানুক্রমে সাজাতে কী সাজান টিক দিন। কনফিগ তুলনা করার সময় এটি কাজে আসে।
- YAML অবৈধ হলে স্ট্যাটাস বারে লাইন ও কলাম দেখায়, আর সমস্যাযুক্ত লাইনগুলো তার নিচে
^চিহ্নসহ দেখা যায়। - JSON কপি বা ডাউনলোড করুন, অথবা আবার YAML-এ রূপান্তর করতে অদলবদল চাপুন।
YAML কীভাবে JSON-এ ম্যাপ হয়
JSON হলো YAML 1.2-এর একটি উপসেট, তাই প্রতিটি YAML mapping একটি JSON অবজেক্ট, প্রতিটি sequence একটি অ্যারে, আর scalar-গুলো string, number, boolean বা null হয়। শুধু YAML-এর ফিচারগুলো রূপান্তরের সময় সমাধান করা হয়:
- কমেন্ট (
# …) বাদ দেওয়া হয়, কারণ JSON-এ কমেন্ট নেই। - Anchor ও alias (
&base,*base,<<: *base) সম্পূর্ণ কপিতে প্রসারিত হয়। - টাইমস্ট্যাম্প, যেমন
2024-01-02, ISO 8601 string হয়। - একাধিক লাইনের string (
|literal ও>folded ব্লক)\nescape-সহ সাধারণ string হয়।
মাল্টি-ডকুমেন্ট YAML
একটি ফাইলে --- দিয়ে আলাদা করা কয়েকটি YAML ডকুমেন্ট থাকতে পারে, যা Kubernetes manifest-এ প্রচলিত। JSON-এ এর কোনো সমতুল্য নেই, তাই কনভার্টার প্রতিটি ডকুমেন্টের জন্য একটি এলিমেন্টসহ একটি JSON অ্যারে ফেরত দেয় এবং স্ট্যাটাস বারে তা জানায়। শেষে একটিমাত্র --- থাকলে উপেক্ষা করা হয়।
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 দুটি সংস্করণেই একই অর্থে পড়া হয়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
আমার YAML কি কোথাও আপলোড হয়?
আমার YAML “bad indentation” ত্রুটি দেয় কেন?
-) তাদের প্যারেন্ট কী-এর নিচে সুসংগতভাবে ইনডেন্ট করা।YAML কমেন্টের কী হয়?
<code>no</code> কেন string হিসেবেই থাকল?
true/false boolean। পুরনো YAML 1.1 পার্সার no, yes, on ও off-কে boolean বানিয়ে দিত (“নরওয়ে সমস্যা”)।কয়েকটি রিসোর্সযুক্ত Kubernetes manifest কি রূপান্তর করা যায়?
--- দিয়ে আলাদা করা প্রতিটি রিসোর্স আউটপুট JSON অ্যারের একটি এলিমেন্ট হয়, যা jq বা kubectl apply -f --এর জন্য প্রস্তুত, কারণ এটি JSON তালিকাও গ্রহণ করে।