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

বাম দিকে JSON পেস্ট করুন, ডান দিকে সুসংগত ইন্ডেন্টেশনসহ YAML 1.2 পান। আপনার ব্রাউজারে চলে — কোনো আপলোড নেই।

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

JSON-কে সমতুল্য YAML 1.2-এ রূপান্তর করে। অবজেক্ট ম্যাপিং হয়, অ্যারে সিকোয়েন্স হয়, এবং সংখ্যা/বুলিয়ান/null/স্ট্রিং নিজ ধরন রাখে। আউটপুট ডিফল্টভাবে 2-স্পেস ইন্ডেন্টেশন এবং 100-কলাম লাইন প্রস্থ ব্যবহার করে। JSON → YAML → JSON রাউন্ড-ট্রিপে অর্থগতভাবে অভিন্ন ডেটা পাওয়া যায়, যদিও মন্তব্য এবং ক্রমের সূক্ষ্মতা JSON-পক্ষের সীমাবদ্ধতা যা সম্পর্কে সচেতন থাকা দরকার।

উদাহরণ

JSON ইনপুট:

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

YAML আউটপুট:

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

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

এই টুল YAML-এ রূপান্তরের আগে JSON বৈধ হতে হবে। পার্সার যেকোনো ব্যর্থতার লাইন এবং কলাম দেখায় — এই প্যাটার্নগুলো প্রায় সব "অবৈধ JSON" ত্রুটির জন্য দায়ী।

  • ট্রেইলিং কমা। `{"a": 1, "b": 2,}` অবৈধ। JSON অবজেক্ট বা অ্যারের শেষ এলিমেন্টের পরে কমা অনুমোদন করে না।
  • একক উদ্ধৃতি। `{'a': 1}` অবৈধ। JSON স্ট্রিং এবং কী ডাবল উদ্ধৃতি ব্যবহার করতে হবে।
  • উদ্ধৃতিবিহীন কী। `{a: 1}` অবৈধ — JavaScript অবজেক্ট লিটারাল এটি অনুমোদন করে, JSON করে না। কী-কে ডাবল উদ্ধৃতিতে মুড়ে দিন।
  • মন্তব্য। কঠোর JSON-এ // বা /* */ মন্তব্য অনুমোদিত নয়। রূপান্তরের আগে মুছে ফেলুন বা YAML আউটপুট ব্যবহার করুন (যা # মন্তব্য সমর্থন করে) এবং আধা-হাতে পেস্ট করুন।
  • স্মার্ট কোট। ওয়ার্ড প্রসেসর থেকে কপি-পেস্ট কখনো কখনো " কে কার্ভি কোটে প্রতিস্থাপন করে — JSON সেগুলি প্রত্যাখ্যান করে। আবার টাইপ করুন বা প্লেইন-টেক্সট সম্পাদকের মাধ্যমে পেস্ট করুন।
  • NaN / Infinity। JSON-এর NaN, Infinity বা -Infinity-এর জন্য কোনো প্রতিনিধিত্ব নেই। আপনার ডেটায় থাকলে বেছে নিন: null হিসাবে সিরিয়ালাইজ করুন (তথ্য হারায়) বা স্ট্রিং "NaN" হিসাবে (অভিপ্রায় রাখে কিন্তু ধরন বদলায়)।
প্রায়শই জিজ্ঞাসিত প্রশ্ন

আমার YAML আউটপুটে কেন মন্তব্য নেই?

JSON-এ মন্তব্য সিনট্যাক্স নেই, তাই বহন করার মতো কোনো মন্তব্য নেই। মন্তব্য সহ YAML চাইলে রূপান্তরের পর আউটপুট হাত দিয়ে সম্পাদনা করুন। কিছু টিম JSON-এ `_comment` ফিল্ড হিসাবে মন্তব্য এনকোড করে, কিন্তু সেগুলো YAML-এ সাধারণ কী হয়ে যায় — আসল মন্তব্য নয়।

আমার কী-এর ক্রম কি বজায় থাকবে?

হ্যাঁ। JSON অবজেক্ট কী-এর ক্রম YAML ম্যাপিং ক্রম হিসাবে বজায় থাকে — আধুনিক ব্রাউজারে JSON.parse + JSON.stringify-এর মতো, যা সন্নিবেশ ক্রম রাখে। বর্ণানুক্রমিক সাজানো প্রয়োজন হলে আগে JSON সাজান।

গভীরভাবে নেস্টেড গঠন কীভাবে ফরম্যাট হয়?

YAML আউটপুট প্রতি স্তরে 2-স্পেস ইন্ডেন্টেশন ব্যবহার করে, ব্লক স্টাইলে সিকোয়েন্স সহ (প্রতি লাইনে এক আইটেম, `-` দিয়ে শুরু)। খালি অবজেক্ট এবং অ্যারে যথাক্রমে `{}` এবং `[]` হিসাবে রেন্ডার হয় — ফ্লো স্টাইল, কারণ ব্লক স্টাইল খালির জন্য অস্পষ্ট হবে।

এটি কি বাইনারি ডেটা সমর্থন করে?

JSON-এ নেটিভ বাইনারি টাইপ নেই, তাই বাইনারি সাধারণত ইনপুটে আগেই base64 স্ট্রিং হিসাবে এনকোড করা থাকে। আউটপুট YAML সেই স্ট্রিং সংরক্ষণ করে। যদি আপনি সত্যিই YAML বাইনারি ফরম্যাট (`!!binary`) চান, রূপান্তর তা তৈরি করে না — base64 স্ট্রিং পদ্ধতি রাখুন।

API কী-এর মতো সংবেদনশীল JSON-এর জন্য কি এটি নিরাপদ?

হ্যাঁ। সব আপনার ব্রাউজারে চলে। আপনার ইনপুট এই পেজের JavaScript দ্বারা পার্স ও রূপান্তরিত হয়; কোনো সার্ভারের সাথে যোগাযোগ হয় না। ব্রাউজার ডেভেলপার টুলে যাচাই করুন — Convert ক্লিক করলে কোনো নেটওয়ার্ক রিকোয়েস্ট নেই।

আমি কি JSON → YAML → JSON রাউন্ড-ট্রিপ করতে পারি?

ডেটার জন্য, হ্যাঁ — শব্দার্থ সংরক্ষিত। সঠিক বাইট-সমতুল্য টেক্সটের জন্য, না — হোয়াইটস্পেস ও কোটিং স্বাভাবিক হয়ে যায়। স্থিতিশীল ক্যাননিকাল ফর্ম প্রয়োজন হলে, পেস্টের আগে সাজানো কী সহ JSON.stringify চালান।