YAML থেকে JSON কনভার্টার

বাম দিকে YAML পেস্ট করুন, ডান দিকে JSON পান। সম্পূর্ণভাবে আপনার ব্রাউজারে চলে — কোনো আপলোড নেই, সাইন আপের প্রয়োজন নেই।

  1. বাম টেক্সট এরিয়ায় আপনার YAML পেস্ট করুন।
  2. "JSON-এ রূপান্তর" ক্লিক করুন। আউটপুট ডানে দেখা যাবে।
  3. ফলাফল কপি করুন বা Download ক্লিক করে data.json হিসেবে সেভ করুন।
  4. রূপান্তর ব্যর্থ হলে ত্রুটি বার্তা ভুল লাইনের দিকে ইঙ্গিত করে।
এটি কী করে?

YAML 1.2 ডকুমেন্টকে সমতুল্য JSON-এ রূপান্তর করে। ম্যাপিং অবজেক্ট হয়, সিকোয়েন্স অ্যারে হয়, এবং স্কেলার YAML নিয়ম অনুযায়ী সংখ্যা, বুলিয়ান, null বা স্ট্রিং হিসাবে টাইপ করা হয়। অ্যাঙ্কর এবং অ্যালিয়াস রূপান্তরের সময় সমাধান করা হয়। `---` দ্বারা পৃথক করা মাল্টি-ডকুমেন্ট স্ট্রিম ডকুমেন্টের একটি অ্যারেতে চ্যাপ্টা করা হয়।

উদাহরণ

YAML ইনপুট:

name: Ada
tags:
  - math
  - logic
active: true

JSON আউটপুট:

{
  "name": "Ada",
  "tags": [
    "math",
    "logic"
  ],
  "active": true
}

সাধারণ YAML ত্রুটি এবং কীভাবে ঠিক করবেন

YAML হোয়াইটস্পেস-সংবেদনশীল, যা বেশিরভাগ "পার্স ব্যর্থ" বার্তার উৎস। পার্সার ব্যর্থতার লাইন এবং কলাম দেখায় — এই প্যাটার্নগুলো খুঁজুন।

  • স্পেসের পরিবর্তে ট্যাব। YAML 1.2 ইন্ডেন্টেশনের জন্য ট্যাব নিষিদ্ধ করে। প্রতিটি ট্যাবকে স্পেস দিয়ে প্রতিস্থাপন করুন — বেশিরভাগ এডিটরে "ট্যাবকে স্পেসে রূপান্তর" কমান্ড আছে।
  • মিশ্রিত ইন্ডেন্ট স্তর। 4 স্পেস ইন্ডেন্টেড ভাইয়ের নিচে 2 স্পেস ইন্ডেন্টেড সন্তান ব্যর্থ হবে। একটি ইন্ডেন্ট প্রস্থ (সাধারণত 2 স্পেস) বেছে নিন এবং সমগ্র ডকুমেন্টে সামঞ্জস্যপূর্ণভাবে ব্যবহার করুন।
  • বুলিয়ানের মতো দেখতে স্ট্রিং। YAML 1.1-এ `yes`, `no`, `on`, `off` বুলিয়ান হিসাবে পার্স হয় — দেশের কোডে ("NO" ফাঁদ) এবং সংস্করণ স্ট্রিংয়ে আশ্চর্যজনক। মান উদ্ধৃত করুন: `country: "NO"`। js-yaml ডিফল্টরূপে YAML 1.2 ব্যবহার করে যেখানে এটি সমাধান করা হয়েছে, কিন্তু বাস্তব ইনপুটগুলি এখনও সমস্যায় পড়ে।
  • উদ্ধৃতি ছাড়া বিশেষ অক্ষর। `- `, `:`, `?`, `&`, `*`, `!`, `|`, `>`, `\'`, `"`, `%`, `@`, `` ` `` দিয়ে শুরু হওয়া মানগুলির উদ্ধৃতি প্রয়োজন। সবচেয়ে নিরাপদ প্যাটার্ন: যতিচিহ্নযুক্ত যেকোনো স্ট্রিং উদ্ধৃত করুন।
  • অসমাপ্ত উদ্ধৃতি। একটি অনুপস্থিত শেষ `"` বা `\'` পার্সারকে পরবর্তী উদ্ধৃতি পর্যন্ত বাকি ফাইলকে স্ট্রিংয়ের অংশ হিসাবে গণ্য করতে বাধ্য করে — সাধারণত প্রকৃত ভুল থেকে অনেক দূরে একটি বিভ্রান্তিকর লাইন নম্বর তৈরি করে।
  • অ্যাঙ্কর / অ্যালিয়াস অমিল। অপরিজ্ঞাত অ্যাঙ্কর (`&name`) উল্লেখকারী অ্যালিয়াস (`*name`) পার্স ত্রুটি উত্থাপন করে। নিশ্চিত করুন যে প্রতিটি অ্যালিয়াসের জন্য ডকুমেন্টে আগে একটি মিলে যাওয়া অ্যাঙ্কর ঘোষণা করা আছে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন

এটি কি "Norway problem"-এর মতো YAML 1.1 অদ্ভুততা সমর্থন করে?

না — এবং এটি ইচ্ছাকৃত। আমরা YAML 1.2 মোডে js-yaml ব্যবহার করি, যেখানে অউদ্ধৃত `NO` বুলিয়ান false-এর পরিবর্তে স্ট্রিং "NO" হিসাবে পার্স হয়। যদি আপনার ইনপুট YAML 1.1 বুলিয়ানের উপর নির্ভর করে, পেস্ট করার আগে স্পষ্টভাবে উদ্ধৃত করুন। একটি টুলে দুটি স্পেক মেশানো নীরবে আপনার ডেটাকে ভুলভাবে অনুবাদ করবে।

YAML অ্যাঙ্কর এবং অ্যালিয়াসের কী হয়?

রূপান্তরের সময় তা সমাধান করা হয়। ফলস্বরূপ JSON-এ ডুপ্লিকেট মান সাধারণ ডেটা হিসাবে থাকে — অ্যাঙ্কর JSON-এ টিকে থাকে না কারণ JSON-এর সমতুল্য রেফারেন্স সিনট্যাক্স নেই। যদি রেফারেন্স সংরক্ষিত প্রয়োজন হয়, JSON সঠিক টার্গেট ফরম্যাট নয়।

আমি কি মাল্টি-ডকুমেন্ট YAML ফাইল রূপান্তর করতে পারি?

হ্যাঁ। `---` দ্বারা পৃথক একাধিক ডকুমেন্ট সম্বলিত YAML ফাইল JSON অ্যারেতে রূপান্তরিত হয়, প্রতিটি ডকুমেন্ট অ্যারের একটি উপাদান হয়ে যায়। যদি আপনার ফাইল একক ডকুমেন্ট হয়, তবে এটি শীর্ষ স্তরে একক JSON অবজেক্ট বা মানে রূপান্তরিত হয়।

আমার তারিখ স্ট্রিং ISO ফরম্যাটে কেন বের হয়?

YAML-এর একটি নেটিভ টাইমস্ট্যাম্প টাইপ আছে (`2025-12-31`)। পার্সার এটি JavaScript Date হিসাবে পড়ে, যা JSON-এ ISO 8601 স্ট্রিং হিসাবে সিরিয়ালাইজ হয়। মূল লিটারাল টেক্সট রাখতে, আপনার YAML-এ মান উদ্ধৃত করুন: `release: "2025-12-31"`।

এটি কি সংবেদনশীল YAML কনফিগের জন্য নিরাপদ?

হ্যাঁ। সব আপনার ব্রাউজারে চলে — আপনার ইনপুট এই পেজের JavaScript দ্বারা পার্স ও কনভার্ট হয়, কোনো সার্ভারে পাঠানো হয় না। কোনো লগ নেই, ইনপুট নিজেই এ কোনো অ্যানালিটিক্স নেই, কোনো ধরে রাখা নেই। ব্রাউজার ডেভ টুলে যাচাই করুন: Convert ক্লিক করলে কোনো নেটওয়ার্ক রিকোয়েস্ট আসে না।

কত বড় YAML ফাইল এটি সামলাতে পারে?

আপনার ব্রাউজার মেমরি সীমা পর্যন্ত, কিন্তু ~10 MB YAML-এর উপরে টেক্সট এরিয়া UI ধীর মনে হতে শুরু করে। বড় ইনপুটের জন্য, খণ্ডে রূপান্তর করুন বা কমান্ড লাইনে একই লাইব্রেরি (js-yaml) ব্যবহার করুন।