JSON এস্কেপ / আনএস্কেপ

র‌ টেক্সটকে JSON-নিরাপদ স্ট্রিংয়ে এস্কেপ করুন, কোনো JSON স্ট্রিংকে আবার সাদা টেক্সটে আনএস্কেপ করুন, বা একটি সম্পূর্ণ JSON নথিকে মিনিফাই ও ভ্যালিডেট করুন। ব্যাকস্ল্যাশ, কোট, নিউলাইন, ট্যাব ও কন্ট্রোল ক্যারেক্টার JSON স্পেসিফিকেশনের অক্ষরানুযায়ী সামলানো হয়। সবকিছু আপনার ব্রাউজারে চলে — কিছুই আপলোড হয় না।

প্রতিটি মোড কী করে

মোডএটি কী করেউদাহরণ
এস্কেপর‌ টেক্সটকে এস্কেপ করা JSON স্ট্রিংয়ে রূপান্তর করে — ব্যাকস্ল্যাশ, ডবল কোট, নিউলাইন, ট্যাব ও অন্যান্য কন্ট্রোল ক্যারেক্টার তাদের JSON এস্কেপ সিকোয়েন্স দিয়ে প্রতিস্থাপিত হয়, যাতে টেক্সটটি কোনো JSON স্ট্রিংয়ের ভেতরে নিরাপদে বসানো যায়।a"b → a\"b
আনএস্কেপএস্কেপিং উল্টে দেয় — একটি JSON-শৈলীর এস্কেপ করা স্ট্রিং (এর চারপাশের কোটসহ বা কোট ছাড়া) পড়ে এবং মূল টেক্সট ফেরত দেয়, \n, \t, \", \\, \uXXXX ও বাকি সব সমাধান করে।caf\u00e9 → café
মিনিফাই / ভ্যালিডেটএকটি সম্পূর্ণ JSON নথি পার্স করে এবং প্রতিটি অপ্রয়োজনীয় স্পেস ও নিউলাইন সরিয়ে তা আবার আউটপুট করে। JSON অবৈধ হলে এটির বদলে পার্সার ত্রুটি জানায় — তাই এটি একটি ভ্যালিডেটরের কাজও করে।{ "a": 1 } → {"a":1}

এস্কেপ অপশন

অপশনএটি কী করেউদাহরণ
ডবল কোটে মোড়ানচারপাশে "…" যোগ করে যাতে আউটপুট কেবল এস্কেপ করা বিষয়বস্তু নয়, একটি সম্পূর্ণ JSON স্ট্রিং মান হয়।hi → "hi"
ফরওয়ার্ড স্ল্যাশ এস্কেপ করুন (/ → \/)ঐচ্ছিক। কিছু এনকোডার ফরওয়ার্ড স্ল্যাশ এস্কেপ করে যাতে কোনো JSON ব্লক থেকে HTML স্ক্রিপ্ট এলিমেন্ট সময়ের আগে শেষ না হয়। ডিফল্টভাবে বন্ধ, কারণ JSON স্পেসিফিকেশন এটি দাবি করে না।a/b → a\/b
নন-ASCII এস্কেপ করুন (\uXXXX)ASCII সীমার উপরের প্রতিটি ক্যারেক্টারকে \uXXXX এস্কেপে রূপান্তর করে, বিশুদ্ধ-ASCII আউটপুট তৈরি করে। ডিফল্টভাবে বন্ধ, কারণ JSON স্ট্রিং সরাসরি UTF-8 ক্যারেক্টার রাখতে পারে।é → \u00e9

উদাহরণ

মোডইনপুটআউটপুট
এস্কেপC:\Users\meC:\\Users\\me
এস্কেপSay "hello"Say \"hello\"
এস্কেপ (স্ল্যাশ চালু)1/2 and 3/41\/2 and 3\/4
আনএস্কেপcaf\u00e9café
আনএস্কেপ\"quoted\""quoted"
মিনিফাই{ "a": 1, "b": [ 1, 2 ] }{"a":1,"b":[1,2]}

কোন JSON এস্কেপ সিকোয়েন্স ব্যবহৃত হয়

JSON দুই-ক্যারেক্টার এস্কেপ সিকোয়েন্সের একটি ছোট, নির্দিষ্ট সেট সংজ্ঞায়িত করে, সাথে বাকি সবকিছুর জন্য সাধারণ \uXXXX রূপ। এস্কেপ মোড ঠিক এগুলোই ব্যবহার করে, এবং আনএস্কেপ মোড এদের সবগুলো বোঝে:

ক্যারেক্টারযে রূপে এস্কেপ
ডবল কোট "\"
ব্যাকস্ল্যাশ \\\
নিউলাইন\n
ক্যারিজ রিটার্ন\r
ট্যাব\t
ব্যাকস্পেস\b
ফর্ম ফিড\f
ফরওয়ার্ড স্ল্যাশ / (ঐচ্ছিক)\/
অন্যান্য কন্ট্রোল / (ঐচ্ছিক) নন-ASCII\uXXXX

JSON-এর জন্য স্ট্রিং এস্কেপ করা কেন দরকার

একটি JSON স্ট্রিং ডবল কোট দিয়ে সীমাবদ্ধ, তাই টেক্সটের ভেতরে একটি র‌ ডবল কোট স্ট্রিংটিকে সময়ের আগে শেষ করে দেবে এবং নথিকে নষ্ট করবে। ব্যাকস্ল্যাশ এস্কেপ সিকোয়েন্স শুরু করার জন্য সংরক্ষিত, তাই সেটিকেও দ্বিগুণ করতে হয়। আর যেহেতু JSON ব্যাকরণ র‌ কন্ট্রোল ক্যারেক্টার নিষিদ্ধ করে, যে মানে সত্যিকারের লাইন ব্রেক বা ট্যাব আছে — কোনো Windows ফাইল পাথ, ফরম্যাট করা লগ লাইন, সোর্স কোডের একটি খণ্ড — সেই ক্যারেক্টারগুলোকে সংরক্ষণের আগে \n, \t ইত্যাদিতে রূপান্তর করতে হয়। এই ধাপটি বাদ দেওয়া “unexpected token” পার্স ত্রুটির সবচেয়ে সাধারণ কারণগুলোর একটি, বিশেষত যখন কোনো যথাযথ সিরিয়ালাইজারের বদলে হাতে বা স্ট্রিং কনক্যাটেনেশন দিয়ে কোনো JSON টেমপ্লেটে টেক্সট সেঁটে দেওয়া হয়।

এস্কেপ, মিনিফাই ও ভ্যালিডেট আলাদা কাজ

এদের একে অপরের সাথে গুলিয়ে ফেলা সহজ কারণ এদের সবগুলোতেই JSON জড়িত, কিন্তু এরা ভিন্ন স্তরে কাজ করে। এস্কেপিং একটি একক মানকে এমনভাবে রূপান্তর করে যাতে তা কোটের ভেতরে নিরাপদ থাকে। মিনিফাইং একটি সম্পূর্ণ, ইতিমধ্যে বৈধ JSON নথি নেয় এবং পরিবহনের জন্য তা ছোট করতে ফাঁকা জায়গা সরিয়ে দেয় — এটি কখনো ডেটা বদলায় না, কেবল তার স্বরূপ। ভ্যালিডেটিং শুধু জানায় নথিটি পার্স হয় কিনা। এই টুলটি এদের ইচ্ছাকৃতভাবে আলাদা মোড হিসেবে রাখে: যখন আপনি কোনো টেক্সটকে কোনো JSON স্ট্রিংয়ের ভেতরে বা বাইরে নিয়ে যাচ্ছেন তখন এস্কেপ/আনএস্কেপ ব্যবহার করুন, আর যখন আপনার কাছে ইতিমধ্যে কোনো JSON গঠন আছে এবং তা সংক্ষিপ্ত বা যাচাই করতে চান তখন মিনিফাই/ভ্যালিডেট। এর বদলে যদি আপনি JSON-কে ইনডেন্টেশনসহ প্রিটি-প্রিন্ট করতে চান, তবে JSON ফরম্যাটার সেটির জন্য সঠিক টুল।

ডবল-এস্কেপ করা ডেটা পড়া

যখন ডেটা কয়েকটি সিস্টেমের ভেতর দিয়ে যায় তখন তাতে একাধিক স্তর এস্কেপিং যুক্ত হতে পারে — একটি JSON স্ট্রিং যার বিষয়বস্তু নিজেই একটি এস্কেপ করা JSON স্ট্রিং, যাতে একটি একক কোট \\\" হিসেবে এবং নিউলাইন \\n হিসেবে দেখা যায়। একবার আনএস্কেপ চালালে একটি স্তর সরে; পরের স্তর সরাতে ফলাফলের উপর এটি আবার চালান। যেহেতু আনএস্কেপার পেলে চারপাশের কোটের একটি জোড়াও সরিয়ে দেয়, আপনি কোনো লগ বা ডিবাগার থেকে সরাসরি একটি সম্পূর্ণ স্ট্রিং লিটারাল পেস্ট করে প্রথমে কোটগুলো হাতে সম্পাদনা না করেই পঠনযোগ্য টেক্সট ফেরত পেতে পারেন।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

“JSON স্ট্রিং এস্কেপ করা” বলতে কী বোঝায়?
কোনো JSON স্ট্রিংয়ের ভেতরে কয়েকটি ক্যারেক্টারের বিশেষ অর্থ থাকে এবং সেগুলো সরাসরি আসতে পারে না: ডবল কোট স্ট্রিং শেষ করে দেয়, আর ব্যাকস্ল্যাশ একটি এস্কেপ সিকোয়েন্স শুরু করে। নিউলাইন বা ট্যাবের মতো কন্ট্রোল ক্যারেক্টারও র‌ অবস্থায় অনুমোদিত নয়। এস্কেপিং এদের প্রত্যেকটিকে একটি নিরাপদ দুই-ক্যারেক্টার সিকোয়েন্স দিয়ে প্রতিস্থাপন করে — নিউলাইন হয় \n, ট্যাব হয় \t, কোট হয় \" আর ব্যাকস্ল্যাশ হয় \\ — যাতে পুরো টেক্সটটি নথি না ভেঙে কোনো JSON স্ট্রিংয়ের ভেতরে বসানো যায়। এই টুলটি ঠিক এই রূপান্তরটিই করে, এবং তা উল্টাতেও পারে।
কখন আমার JSON এস্কেপ বা আনএস্কেপ করা দরকার হয়?
সবচেয়ে সাধারণ ক্ষেত্র হলো একটি ডেটা আরেকটির ভেতরে বসানো: কোনো কোড স্নিপেট, ফাইল পাথ (ব্যাকস্ল্যাশে ভরা), HTML খণ্ড বা বহু-লাইন বার্তাকে কোনো API, কনফিগ ফাইল বা লগ এন্ট্রির JSON পেলোডে ঢোকানো। ভেতরে ঢোকানোর সময় আপনি এস্কেপ করেন এবং বের করার সময় আনএস্কেপ করেন। আনএস্কেপ করা সেই মান পড়ার জন্যও সুবিধাজনক যা “ডবল-এস্কেপ” হয়ে গেছে — যেমন একটি JSON স্ট্রিং যার ভেতরে নিজেই এনকোড করা JSON আছে, যা কয়েকটি সিস্টেমের ভেতর দিয়ে ডেটা গেলে সহজেই তৈরি হয়ে যায়।
এস্কেপ করা ও মিনিফাই করার মধ্যে পার্থক্য কী?
এস্কেপিং একটি একক স্ট্রিং মানের উপর কাজ করে — এটি যেকোনো টেক্সটকে এক জোড়া JSON কোটের ভেতরে বসার উপযোগী নিরাপদ করে তোলে। মিনিফাইং একটি সম্পূর্ণ JSON নথির উপর কাজ করে — এটি গঠন পার্স করে এবং পরিবহনের জন্য যতটা সম্ভব ছোট করতে কোনো অপ্রয়োজনীয় ফাঁকা জায়গা ছাড়া আবার প্রিন্ট করে। এগুলো আলাদা কাজ: যখন আপনার কাছে র‌ টেক্সট থাকে যা JSON-এ ঢোকাতে হবে তখন এস্কেপ ব্যবহার করুন, আর যখন আপনার কাছে ইতিমধ্যে বৈধ JSON থাকে এবং শুধু তা সংকুচিত করতে চান তখন মিনিফাই। মিনিফাই মোড ভ্যালিডেটও করে, JSON ত্রুটিপূর্ণ হলে সঠিক পার্সার ত্রুটি জানায়।
আমার কি “ফরওয়ার্ড স্ল্যাশ এস্কেপ করুন” বা “নন-ASCII এস্কেপ করুন” চালু করা উচিত?
সাধারণত না। JSON স্পেসিফিকেশন ফরওয়ার্ড স্ল্যাশ এস্কেপ করার দাবি করে না, এবং JSON স্ট্রিং সরাসরি অ্যাকসেন্ট ও ইমোজির মতো UTF-8 ক্যারেক্টার রাখতে পারে, তাই ডিফল্ট আউটপুট বৈধ ও পঠনযোগ্য। “ফরওয়ার্ড স্ল্যাশ এস্কেপ করুন” কেবল তখনই চালু করুন যখন আপনি JSON-কে কোনো HTML স্ক্রিপ্ট এলিমেন্টের ভেতরে এমবেড করছেন এবং ডেটাকে সেই এলিমেন্ট ভুলবশত সময়ের আগে শেষ করা থেকে ঠেকাতে চান। “নন-ASCII এস্কেপ করুন” কেবল তখনই চালু করুন যখন কোনো ডাউনস্ট্রিম সিস্টেম সাদা 7-বিট ASCII দাবি করে — আউটপুট যেভাবেই হোক বৈধ JSON থাকে, শুধু দীর্ঘ হয়।
আনএস্কেপ কি ইমোজি ও মৌলিক সীমার বাইরের অন্য ক্যারেক্টার সামলায়?
হ্যাঁ। মৌলিক বহুভাষিক তল (basic multilingual plane)-এর বাইরের ক্যারেক্টার — যেমন অধিকাংশ ইমোজি — JSON-এ দুটি \uXXXX এস্কেপের একটি সারোগেট জোড়া হিসেবে উপস্থাপিত হয়। আনএস্কেপার প্রতিটি অর্ধেক সমাধান করে এবং দুটি কোড ইউনিট আবার একটি একক মূল ক্যারেক্টারে মিলে যায়, তাই “\ud83d\ude00” পরিষ্কারভাবে 😀-তে ফিরে আসে। নন-ASCII অপশন চালু রেখে এস্কেপ করলে একই সারোগেট-জোড়া রূপ তৈরি হয়।
আমার ডেটা কি কোথাও পাঠানো হয়?
না। প্রতিটি অপারেশন আপনার ব্রাউজারে সাদা JavaScript দিয়ে চলে — আপনি যে টেক্সট পেস্ট করেন তা কখনো আপনার ডিভাইস থেকে বাইরে যায় না এবং কিছুই সংরক্ষিত হয় না। এটি টুলটিকে টোকেন, অভ্যন্তরীণ পেলোড, ব্যক্তিগত কনফিগারেশন ও অন্য যেকোনো সংবেদনশীল ডেটার জন্য নিরাপদ করে তোলে, এবং পৃষ্ঠা লোড হওয়ার পরে এটি অফলাইনে কাজ করে।

সম্পর্কিত টুল

আরও টুল দেখুন

সব 70টি টুল দেখুন →