JSON ফরম্যাটার কী এবং এটি কীভাবে কাজ করে?
JSON ফরম্যাটার হলো একটি শক্তিশালী অনলাইন টুল যা আপনার JSON ডেটা ফরম্যাট, ভ্যালিডেট এবং মিনিফাই করতে সাহায্য করে। এই টুলের মাধ্যমে ব্যবহারকারীরা সরাসরি ইনপুট এরিয়াতে JSON টেক্সট পেস্ট করতে পারেন অথবা সরাসরি ফাইল আপলোড করে কাজ করতে পারেন।
এই টুলটি মূলত নিম্নলিখিত কাজগুলো সম্পাদন করে:
- ফরম্যাটিং ও মিনিফাইং: বিভিন্ন ইনডেন্টেশন লেভেল ব্যবহার করে অগোছালো JSON-কে পঠনযোগ্য আকারে সাজানো যায়। আবার অপ্রয়োজনীয় স্পেস ও লাইন ব্রেক রিমুভ করে ডেটা মিনিফাই করা যায়।
- ভ্যালিডেশন ও ত্রুটি সংশোধন: এটি JSON-এর সিনট্যাক্স যাচাই করে এবং কোনো ভুল থাকলে তা হাইলাইট করে সংশোধনের প্রস্তাব দেয়।
- ট্রি ভিউ এক্সপ্লোরেশন: একটি ইন্টারঅ্যাক্টিভ ট্রি স্ট্রাকচারের মাধ্যমে জটিল JSON ডেটার গঠন সহজে বিশ্লেষণ করা যায়।
- ডেটা এক্সপোর্ট: প্রসেস করা আউটপুট কপি করার পাশাপাশি ফাইল হিসেবে ডাউনলোড করার সুবিধাও রয়েছে।
ইনপুট ও ফাইল আপলোডের নিয়মাবলী
টুলটিতে ডেটা ইনপুট দেওয়ার জন্য বেশ কয়েকটি বিকল্প এবং নির্দিষ্ট নিয়ম রয়েছে:
- পেস্ট করা JSON: ব্যবহারকারীরা সরাসরি ইনপুট বক্সে তাদের JSON টেক্সট পেস্ট করতে পারেন।
- ফাইল আপলোড: "ফাইল খুলুন" বাটনে ক্লিক করে অথবা ড্র্যাগ অ্যান্ড ড্রপ করার মাধ্যমে একটি
.jsonবা.txtফাইল ওপেন করা যায়। - ফাইলের সীমাবদ্ধতা ও নিয়ম:
- শুধুমাত্র
.jsonবা.txtফরম্যাটের ফাইলই এখানে সমর্থন করে। অন্য ফাইল আপলোড করলে "অসমর্থিত ফাইলের ধরন — একটি.json বা.txt ফাইল বেছে নিন।" বার্তাটি প্রদর্শিত হয়। - ফাইলটি অবশ্যই UTF-8 এনকোডিংয়ের হতে হবে। অন্যথায় "এই ফাইলটি UTF-8 টেক্সট নয়, তাই এখানে খোলা যাবে না।" এররটি দেখাবে।
- ফাইলের সাইজ একটি নির্দিষ্ট সীমার মধ্যে হতে হবে। সীমা অতিক্রম করলে টুলটি দেখাবে: "ফাইলটি খুব বড় — সীমা
{limit}।"। - ফাইল পড়তে কোনো সমস্যা হলে "ফাইলটি পড়া যায়নি। আবার বেছে নিয়ে দেখুন।" মেসেজটি প্রদর্শিত হয়।
- শুধুমাত্র
- ইনপুট সাইজের সর্বোচ্চ সীমা: এই টুলের সর্বোচ্চ ইনপুট প্রসেসিং সীমা হলো ১০ MiB। ইনপুট যদি এই সীমার চেয়ে বড় হয়, তবে "ইনপুট
{limit}-এর চেয়ে বড়, যা এই টুলের সামর্থ্যের বাইরে।" এররটি দেখাবে। - সিনট্যাক্স ও ইনডেন্টেশন নির্বাচন: ব্যবহারকারী নিজের পছন্দমতো ইনডেন্টেশন লেভেল এবং "JSON" ও "JSONC" সিনট্যাক্সের মধ্যে যেকোনো একটি বেছে নিতে পারেন।
আউটপুট এবং স্ট্যাটাস মেসেজ
টুলটিতে কাজ করার সময় বিভিন্ন অ্যাকশনের ওপর ভিত্তি করে ইন্টারফেসে নির্দিষ্ট আউটপুট ও স্ট্যাটাস মেসেজ প্রদর্শিত হয়:
- সাধারণ স্ট্যাটাস:
- টুলটি ব্যবহারের জন্য প্রস্তুত থাকলে দেখায়: "প্রস্তুত। JSON পেস্ট করুন এবং একটি অ্যাকশন বেছে নিন।"।
- কোনো JSON না দিয়ে অ্যাকশন নিলে দেখায়: "প্রথমে কিছু JSON পেস্ট করুন বা একটি ফাইল খুলুন।"।
- সফলভাবে ফরম্যাট বা মিনিফাই হলে যথাক্রমে "JSON ফরম্যাট করা হয়েছে।" এবং "JSON মিনিফাই করা হয়েছে।" বার্তা আসে।
- এডিটর ক্লিয়ার করা হলে দেখায়: "এডিটর খালি করা হয়েছে।"।
- ফাইল সফলভাবে লোড হলে দেখায়: "
{name}({size}) লোড হয়েছে।" এবং ডাউনলোড হলে দেখায়: "{name}ডাউনলোড হয়েছে।"। - ক্লিপবোর্ডে ডেটা কপি করা হলে "ক্লিপবোর্ডে কপি করা হয়েছে।" মেসেজটি আসে।
- মেটাডেটা ও ভিউ অপশন:
- ইনপুটের পরিসংখ্যান হিসেবে ক্যারেক্টার সংখ্যা ("ক্যারেক্টার"), লাইনের সংখ্যা ("লাইন") এবং ফাইলের আকার ("সাইজ") প্রদর্শিত হয়।
- ব্যবহারকারী চাইলে "কোড" ভিউ অথবা ইন্টারঅ্যাক্টিভ "ট্রি" ভিউয়ের মাধ্যমে ডেটা দেখতে পারেন। এডিটরের থিম পরিবর্তনের জন্য "ডার্ক এডিটর" অপশন রয়েছে।
JSON ট্রি ভিউ এবং নেভিগেশন
জটিল ও বড় JSON ডেটা সহজে বোঝার জন্য এই টুলে একটি ইন্টারঅ্যাক্টিভ "JSON ট্রি" ভিউ রয়েছে।
ট্রি ভিউ ব্যবহারের নিয়ম ও সীমাবদ্ধতাগুলো নিচে দেওয়া হলো:
- অনুসন্ধান: ট্রি ভিউয়ের ভেতরে "কী ও মান খুঁজুন" লেবেলের সার্চ বক্স ব্যবহার করে নির্দিষ্ট কী বা ভ্যালু খোঁজা যায়। সার্চের ফলাফলের মিলগুলো "
{total}-এর মধ্যে{current}" বা ফলাফল বেশি হলে "{total}+-এর মধ্যে{current}" হিসেবে দেখায়। কোনো মিল না পাওয়া গেলে "কোনো মিল নেই" প্রদর্শিত হয়। নেভিগেশনের জন্য "আগের মিল" এবং "পরের মিল" বাটন ব্যবহার করা যায়। - নোড নিয়ন্ত্রণ: পুরো ট্রি একসাথে খোলার জন্য "সব খুলুন" এবং বন্ধ করার জন্য "সব গুটিয়ে নিন" বাটন রয়েছে। এছাড়া নির্দিষ্ট নোডের জন্য "
{key}খুলুন" এবং "{key}গুটিয়ে নিন" অপশন ব্যবহার করা যায়। মূল রুট নোডটি "রুট" লেবেল দ্বারা চিহ্নিত থাকে। - কপি অপশন: নির্দিষ্ট নোডের ওপর রাইট ক্লিক বা মেনু থেকে "
{key}-এর কপি অপশন" ব্যবহার করে "মান কপি করুন", "JSON Pointer কপি করুন" অথবা "JSONPath কপি করুন"-এর মাধ্যমে সুনির্দিষ্ট পাথ কপি করা সম্ভব। - ট্রি ভিউয়ের সীমাবদ্ধতা:
- JSON যদি ইনভ্যালিড বা ত্রুটিযুক্ত হয়, তবে ট্রি ভিউ কাজ করবে না এবং দেখাবে: "ট্রি (tree) ভিউ দেখতে JSON-টি ঠিক করুন।"।
- অত্যন্ত বড় JSON-এর ক্ষেত্রে দেখাবে: "এই JSON-টি ট্রি হিসেবে দেখানোর জন্য অত্যন্ত বড়।" অথবা "এই JSON-এ ট্রি হিসেবে দেখানোর মতো অনেক বেশি মান আছে।"।
- বড় ট্রির সব নোড একসাথে এক্সপ্যান্ড করতে গেলে এটি ক্যাপড বা সীমিত হয়ে যায় এবং দেখায়: "এই JSON পুরোপুরি খোলার জন্য খুব বড় — প্রথম
{count}টি সারি দেখানো হচ্ছে।"। এক্ষেত্রে ব্যবহারকারী চাইলে "আরও{count}টি দেখান…" বাটনে ক্লিক করে আরও ডেটা দেখতে পারেন।
ত্রুটি সনাক্তকরণ এবং সমাধান
ইনপুট করা JSON-এ কোনো ভুল থাকলে টুলটি তা স্বয়ংক্রিয়ভাবে সনাক্ত করে এবং নির্দিষ্ট এরর মেসেজ ও তার অবস্থান ("লাইন {line}, কলাম {col}") প্রদর্শন করে। ব্যবহারকারী "ত্রুটিতে যান" বাটনে ক্লিক করে সরাসরি ভুলের জায়গায় পৌঁছাতে পারেন।
সাধারণ কিছু সিনট্যাক্স ভুলের মেসেজ নিচে দেওয়া হলো:
- "আইটেমগুলোর মাঝে কমা নেই"
- " শেষের ব্র্যাকেটের আগে অতিরিক্ত কমা আছে"
- "অবজেক্টের কী অবশ্যই ডাবল কোটের মধ্যে থাকতে হবে"
- "প্রপার্টির নামের পরে কোলন নেই"
- "একটি স্ট্রিংয়ের শেষের কোট নেই"
- "JSON-টি খুব তাড়াতাড়ি শেষ হয়ে গেছে — এটি অসম্পূর্ণ মনে হচ্ছে"
- "যেখানে মান থাকার কথা সেখানে অপ্রত্যাশিত অক্ষর"
- "এই JSON প্রসেস করার জন্য খুব গভীরভাবে নেস্টেড"
- "ডুপ্লিকেট কী
{key}— ফরম্যাট করার আগে একটি সরিয়ে দিন" (উল্লেখ্য, ডুপ্লিকেট কী থাকলে এই টুলটি ডেটা মার্জ বা বাদ না দিয়ে সরাসরি এরর দেখায়)।
নন-স্ট্যান্ডার্ড JSON সনাক্তকরণ ও সংশোধন:
টুলটি বিভিন্ন নন-স্ট্যান্ডার্ড বা অন্য ফরম্যাটের ডেটা সনাক্ত করতে পারে এবং তা স্ট্যান্ডার্ড JSON-এ রূপান্তরের জন্য "সংশোধনের প্রিভিউ" দেখার সুযোগ দেয়।
সনাক্তকরণ এবং তার বিপরীতে সংশোধনের অ্যাকশনগুলো নিম্নরূপ:
- Markdown কোড ফেন্স: সনাক্ত হলে দেখায় "এটি Markdown কোড ফেন্সের ভেতরের JSON বলে মনে হচ্ছে।"। সংশোধন প্রয়োগ করলে কেবল ফেন্সের ভেতরের JSON অংশটুকু রাখা হয়।
- এস্কেপড স্ট্রিং: সনাক্ত হলে দেখায় "এটি একটি স্ট্রিংয়ের ভেতরে এস্কেপ করা JSON বলে মনে হচ্ছে।"। সংশোধন প্রয়োগ করলে স্ট্রিংটি আনএস্কেপ হয়ে সাধারণ JSON-এ রূপান্তরিত হয়।
- Python ডিকশনারি: সনাক্ত হলে দেখায় "এটি JSON নয়, Python-ধাঁচের ডিকশনারি বলে মনে হচ্ছে।"। সংশোধন প্রয়োগ করলে সিঙ্গেল কোট ডাবল কোটে এবং Python-এর True/False/None মানগুলো স্ট্যান্ডার্ড JSON ফরম্যাটে পরিবর্তিত হয়।
- JSON Lines (NDJSON): সনাক্ত হলে দেখায় "এটি JSON Lines বলে মনে হচ্ছে — প্রতি লাইনে একটি মান।"। সংশোধন প্রয়োগ করলে প্রতি লাইনের মানগুলোকে একটি একক JSON অ্যারেতে সাজানো হয়।
- JSONP কলব্যাক: সনাক্ত হলে দেখায় "এটি JSONP কলব্যাকে মোড়ানো JSON বলে মনে হচ্ছে।"। সংশোধন প্রয়োগ করলে বাইরের কলব্যাক র্যাপারটি ফেলে দেওয়া হয়।
- JSONC (কমেন্টসহ JSON): সনাক্ত হলে দেখায় "এটি JSONC বলে মনে হচ্ছে — কমেন্ট বা শেষের কমা আছে। সিনট্যাক্স JSONC-তে বদলান বা সংশোধন প্রয়োগ করুন।"। সংশোধন প্রয়োগ করলে কমেন্ট ও ট্রেইলিং কমাগুলো মুছে ফেলা হয়।
সংশোধন উইন্ডো: ব্যবহারকারী যখন "সংশোধনের প্রিভিউ" বাটনে ক্লিক করেন, তখন একটি "সংশোধন প্রিভিউ" উইন্ডো খোলে। এখানে বামপাশে "মূল" ডেটা এবং ডানপাশে "সংশোধনের পরে" কেমন দেখাবে তা প্রদর্শিত হয়। ব্যবহারকারী চাইলে "সংশোধন প্রয়োগ করুন" অথবা "বাতিল" করতে পারেন। সংশোধন সফল হলে দেখায়: "সংশোধন প্রয়োগ হয়েছে। পূর্বাবস্থায় ফেরাতে Ctrl/Cmd+Z চাপুন।"। যদি স্বয়ংক্রিয়ভাবে ঠিক করা না যায়, তবে দেখাবে: "এই ইনপুট স্বয়ংক্রিয়ভাবে ঠিক করা যায়নি।"। বড় ডকুমেন্টের ক্ষেত্রে প্রিভিউ ছোট করা হলে দেখায়: "প্রিভিউ ছোট করা হয়েছে — সংশোধন পুরো ডকুমেন্টে প্রযোজ্য।"।
প্রসেসিং নিয়ম ও নিরাপত্তা
এই টুলটি ব্যবহারের ক্ষেত্রে কিছু গুরুত্বপূর্ণ কারিগরি নিয়ম ও নিরাপত্তা নীতি মেনে চলা হয়:
- ব্রাউজার-ভিত্তিক প্রসেসিং: আপনার ইনপুট করা সমস্ত JSON ডেটা সম্পূর্ণভাবে আপনার নিজস্ব ব্রাউজারে প্রসেস করা হয়। BroBroGo-এর সার্ভারে কোনো ডেটা আপলোড বা সংরক্ষণ করা হয় না।
- লার্জ ইন্টিজার প্রিজারভেশন: বড় পূর্ণসংখ্যা (Large Integers) প্রসেস করার সময় কোনো ধরনের ডেটা লস বা মান পরিবর্তন ছাড়াই সেগুলোকে হুবহু সংরক্ষণ করা হয়।
- সিনক্রোনাস প্রসেসিং থ্রেশহোল্ড: এই টুলের সিনক্রোনাস প্রসেসিংয়ের সীমা হলো ২৫০,০০০ ক্যারেক্টার। যদি কোনো JSON যাচাই করতে অতিরিক্ত সময় লাগে, তবে প্রসেসটি থামিয়ে দেওয়া হয় এবং স্ক্রিনে প্রদর্শিত হয়: "এই JSON যাচাই করতে খুব বেশি সময় লাগছিল বলে থামিয়ে দেওয়া হয়েছে। ছোট ডকুমেন্ট চেষ্টা করুন।"।
- কী সর্টিং (Sort Keys): ব্যবহারকারী চাইলে "কী সাজান" বাটনে ক্লিক করে অবজেক্টের কীগুলোকে কোড-পয়েন্ট ক্রমে রিকার্সিভভাবে সাজাতে পারেন। তবে এক্ষেত্রে অ্যারের ভেতরের উপাদানের ক্রম কখনও পরিবর্তিত হয় না। কী সাজানোর পর স্ক্রিনে দেখায়: "কী সাজানো হয়েছে — অ্যারের ক্রম অপরিবর্তিত। পূর্বাবস্থায় ফেরাতে Ctrl/Cmd+Z চাপুন।"।
সাধারণ জিজ্ঞাসা (FAQ)
আমার JSON কি আপলোড করা হয়?
না। ফরম্যাটারটি সম্পূর্ণভাবে আপনার ব্রাউজারেই রান করে এবং আপনার JSON ডেটা কোথাও আপলোড করে না।
minify কী কাজ করে?
Minify করার মাধ্যমে মূল JSON ডেটার গঠন ও মান অপরিবর্তিত রেখে ভেতরের সমস্ত অপ্রয়োজনীয় স্পেস, ট্যাব এবং লাইন ব্রেকগুলো মুছে ফেলা হয়, যা ডেটার সাইজ কমাতে সাহায্য করে।