
ধরুন রাকিব নামে এক কাল্পনিক ডেভেলপার একটি অর্ডারের API উত্তর পেয়েছে। পুরোটা এক লাইনে, ৯০টি অক্ষর, কোথায় কোন মান তা চোখে ধরাই কঠিন। এই কাজে লাগে JSON ফরম্যাটার টুল। লেখা বসিয়ে তিনটি বোতামের একটি চাপলেই সাজানো, ছোট করা বা যাচাই করা রূপ পাওয়া যায়। এই লেখায় দেখব বোতামগুলো ঠিক কী করে, কোনটা কখন কাজে লাগে, আর কম্পিউটারে কাজ দ্রুত করার শর্টকাটগুলো কী। উদাহরণের সব সংখ্যা আমি টুলের নিজের নিয়মে (ব্রাউজারের JSON.parse ও JSON.stringify) চালিয়ে বের করেছি।
আগে JSON-এর গড়নটা চিনে নিন

JSON হলো ডেটা লেখার একটি সরল ধরন, আর API ও কনফিগ ফাইলে এর ব্যবহার খুব সাধারণ। এতে মান মাত্র ছয় রকমের:
- লেখা: দ্বৈত উদ্ধৃতিচিহ্নের ভেতরে, যেমন “Sellshop”।
- সংখ্যা: উদ্ধৃতিচিহ্ন ছাড়া, যেমন 1042 বা 1.5।
- সত্য বা মিথ্যা: ছোট হাতের true ও false।
- খালি: null।
- তালিকা: বর্গ বন্ধনীতে, কমা দিয়ে আলাদা, যেমন [1, 2, 3]।
- বস্তু: কোঁকড়া বন্ধনীতে “কী”: মান জোড়া, যেমন {“name”: “Sellshop”}।
নিয়ম দুটি মনে রাখলে বেশিরভাগ ঝামেলা এড়ানো যায়। কী (নাম) সবসময় লেখা, তাই তার ওপরেও দ্বৈত উদ্ধৃতিচিহ্ন লাগে। আর JSON-এ মন্তব্য লেখার জায়গা নেই।
একই লেখা, তিন বোতাম

কাজের ধাপ তিনটি: লেখাটি ওপরের বক্সে বসান, একটি বোতাম চাপুন, ফলাফলের বক্স থেকে “কপি করুন” দিন। রাকিবের ৯০ অক্ষরের লেখাটি দিয়ে তিন বোতামের কাজ দেখা যাক।
সাজান। টুল প্রতিটি স্তরে দুই স্পেস ঢুকিয়ে লেখাটি সাজায়। রাকিবের লেখা হয়ে যায় ১৫ লাইন, নতুন লাইনের চিহ্নসহ ১৬২ অক্ষর। ভেতরের তালিকা ও বস্তু আলাদা লাইনে ভাঙে, তাই কোন মান কোন অর্ডারের আইটেমে পড়েছে, তা এক নজরে বোঝা যায়। ফাঁকা বস্তু {} ও ফাঁকা তালিকা [] একই লাইনে থাকে। সাজানোর ইন্ডেন্ট টুলে দুই স্পেসে বাঁধা, চার স্পেস বা ট্যাব বাছার কোনো ঘর নেই।
ছোট করুন। উল্টো কাজটা: বাড়তি স্পেস আর নতুন লাইন সরিয়ে সবকিছু এক লাইনে আনে। ১৫ লাইনের সাজানো রূপ আবার হয়ে যায় ৯০ অক্ষর। আরেকটি ছোট উদাহরণ: হাতে ফাঁক রেখে লেখা { "order" : 1042 , আর পরের লাইনে "paid": true } ছোট করলে ৩৪ অক্ষর থেকে হয় ২৬ অক্ষর। ছোট করলে অর্থ বদলায় না, শুধু আকার কমে।
যাচাই করুন। এটি শুধু দেখে লেখাটি সঠিক JSON কি না। সঠিক হলে “JSON সঠিক আছে।” বার্তা আসে, আর ফলাফলের বক্সে নতুন কিছু বসে না। ভুল থাকলে “JSON-এ ভুল আছে:” লিখে ব্রাউজারের ত্রুটির বার্তা দেখায়। মজার কথা, টুলের কোড দেখে বুঝেছি তিনটি বোতামই আগে লেখাটি পড়ে দেখে। তাই “সাজান” বা “ছোট করুন” চাপলেও ভুল থাকলে সেটি ধরা পড়ে, আর ফলাফলের বক্স ফাঁকা হয়ে যায়। বক্স একদম ফাঁকা রেখে চাপলে বার্তা আসে “আগে JSON লেখা বসান।”
কখন কোনটা
- সাজান: API-র উত্তর পড়তে, দুটি ফাইলের পার্থক্য দেখতে, কাউকে দেখানোর আগে, বা কোড রিভিউয়ে।
- ছোট করুন: কোডে বা কনফিগে এক লাইনে বসাতে, অনুরোধের বডি ছোট রাখতে, বা কোনো ফর্মের ঘরে এক লাইনের লেখা চাইলে।
- যাচাই করুন: কোথাও পাঠানো বা সেভ করার ঠিক আগে। হাতে সম্পাদনা করা কনফিগ ফাইলে একটি কমা বাদ পড়লেই পুরো ফাইল অচল হয়, তাই এই পরীক্ষা সস্তা বিমা।
একটি অভ্যাস কাজে দেয়: ভুল খুঁজতে হলে আগে “সাজান” চাপুন। সাজানো লেখায় বন্ধনী মেলানো সহজ, আর ভুল থাকলে বার্তার লাইন নম্বর দিয়ে ঠিক জায়গাটা পাওয়া যায়। বার্তা কীভাবে পড়তে হয়, তা আলাদা করে লিখেছি JSON-এর ভুল ধরার গাইডে।
কম্পিউটারে কাজ দ্রুত করার শর্টকাট

টুলের শর্টকাট তালিকায় (পাতায় “?” চাপলে দেখা যায়) JSON ফরম্যাটারের জন্য কয়েকটি আছে:
- Tab: বক্সের ভেতরে দুই স্পেস বসায়। সাধারণত Tab চাপলে কার্সর বক্স ছেড়ে চলে যায়, এখানে যায় না।
- Ctrl + Enter (ম্যাকে Cmd + Enter): প্রথম বোতাম, অর্থাৎ “সাজান” চালায়।
- Alt + D: ফলাফল ফাইল হিসেবে নামায়। ফাইলের নাম json-formatter.json।
- Alt + O বা ফাইল টেনে বক্সে ছেড়ে দেওয়া: .txt বা .json ফাইলের লেখা বক্সে আসে।
অর্থাৎ বড় একটি .json ফাইল ছেড়ে দিয়ে Ctrl + Enter চাপলেন, ফল ঠিক থাকলে Alt + D দিয়ে সাজানো ফাইল নামালেন, মাউস প্রায় না ছুঁয়েই।
ছোট করলে কতটা বাঁচে
রাকিবের উদাহরণে সাজানো রূপ ১৬২ অক্ষর, ছোট রূপ ৯০ অক্ষর। ফারাক ৭২ অক্ষর, অর্থাৎ সাজানো লেখার প্রায় ৪৪ শতাংশ (৭২ ÷ ১৬২)। এই ফারাক আসে শুধু স্পেস ও নতুন লাইন থেকে; ডেটা একই। তবে এটি লেখার আকারের হিসাব, নেটওয়ার্কে আসল ডেটা কত যায় তার নয়। অনেক সার্ভার ডেটা সংকোচন করে পাঠায়, তখন সাজানো আর ছোট লেখার ফারাক অনেক কমে যায়। এটা সাধারণ ওয়েব-জ্ঞান, টুলের কোনো পরীক্ষা নয়। তাই “ছোট করা” মূলত সুবিধার জিনিস: এক লাইনে বসানো, কম জায়গা নেওয়া, পরিষ্কার দেখানো।
শুধু বস্তু নয়, যেকোনো সঠিক মান চলে
JSON মানে সবসময় কোঁকড়া বন্ধনীতে ঘেরা বস্তু নয়। একটি সংখ্যা (12), একটি লেখা (“x”), true, null, ফাঁকা তালিকা [] বা ফাঁকা বস্তু {}, সবই সঠিক JSON, আর টুল সেগুলো সঠিক বলে মানে। আমি এগুলো ব্রাউজারের একই পার্সারে দিয়ে দেখেছি। তাই API একটিমাত্র সংখ্যা বা true ফেরত দিলেও ঘাবড়ানোর কিছু নেই। লেখার আগে-পরের বাড়তি স্পেস বা নতুন লাইনও সমস্যা করে না।
একটি পুরো কাজের ধারা
রাকিব API-র উত্তরটি বসাল। প্রথমে “সাজান” চেপে ১৫ লাইনে দেখল, items-এর ভেতরে দুটি আইটেম, প্রতিটিতে sku আর qty। দ্বিতীয় আইটেমের qty ১ হওয়ার কথা নয়, ২ হওয়ার কথা, তাই মূল ফাইলে মানটি সংশোধন করল। এবার সংশোধিত লেখা আবার বসিয়ে “যাচাই করুন” চাপল, “JSON সঠিক আছে।” পেল। শেষে কনফিগে এক লাইনে বসানোর জন্য “ছোট করুন” চেপে ৯০ অক্ষরের রূপটি কপি করল। তিন বোতাম, তিনটি আলাদা কাজ, একই বক্সে।
লেখা কোথায় যায়
টুলের নিজের প্রশ্নোত্তরে বলা আছে, সবকিছু ব্রাউজারেই চলে। টুলের ওই অংশের কোড পড়েও আমি JSON নিয়ে কোনো নেটওয়ার্ক অনুরোধ পাইনি। তবু একটি সাধারণ সতর্কতা: পাসওয়ার্ড, API টোকেন বা গ্রাহকের তথ্যভরা JSON যেখানে-সেখানে বসাবেন না, আর সাজানো ফল স্ক্রিনশট বা চ্যাটে শেয়ার করার আগে ওই মানগুলো মুছে নিন।
সীমাবদ্ধতা ও হালনাগাদ: বোতামের আচরণ আমি টুলের সোর্স কোড পড়ে আর একই JSON.parse ও JSON.stringify Node-এ চালিয়ে মিলিয়েছি; কিন্তু টুলটি আসল ব্রাউজারে খুলে প্রতিটি বোতাম ও শর্টকাট চালিয়ে দেখিনি। উদাহরণের অর্ডার, নাম ও সংখ্যা কাল্পনিক। ১৬২ ও ৯০ অক্ষরের হিসাবে নতুন লাইনের চিহ্নও গোনা হয়েছে। হালনাগাদ: ২৬ অক্টোবর ২০২৬।
সাধারণ প্রশ্ন
সাজালে কী-এর ক্রম বদলে যায়?
সাধারণত যায় না, লেখার ক্রম থাকে। একটি ব্যতিক্রম আছে: “2” বা “10”-এর মতো সংখ্যার মতো দেখতে কী বাকিদের আগে চলে আসে। বিস্তারিত আছে পরের গাইডে।
ইন্ডেন্ট চার স্পেস করা যায়?
না। টুল সবসময় দুই স্পেস দেয়। চার স্পেস লাগলে ফল কপি করে নিজের এডিটরে বদলে নিতে হবে।
ভুল থাকলে টুল কি ঠিক করে দেয়?
না। শুধু ভুলের বার্তা দেখায়। ঠিক করতে হয় নিজের হাতে।
JavaScript-এর অবজেক্ট বসালে চলবে?
JSON-এর নিয়ম মানলে চলবে, না মানলে ভুলের বার্তা আসবে। JavaScript কোডে {name: ‘x’} লেখা যায়, কিন্তু JSON-এ কী ও লেখায় দ্বৈত উদ্ধৃতিচিহ্ন লাগে।
একসঙ্গে অনেক JSON বসানো যায়?
এক বক্সে একটিই সঠিক JSON মান থাকতে হয়। দুটি JSON পাশাপাশি বসালে ভুলের বার্তা আসে। তখন তালিকার ভেতরে কমা দিয়ে দুটিকে রাখুন।
