তাৎক্ষণিকভাবে JSON ফর্ম্যাট করুন, যাচাই করুন এবং ছোট করুন
JSON (জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন) হল ওয়েব API, কনফিগারেশন ফাইল এবং ডেটা স্টোরেজের জন্য স্ট্যান্ডার্ড ডেটা ইন্টারচেঞ্জ ফরম্যাট। যখন আপনি একটি API প্রতিক্রিয়া বা একটি ডিবাগিং টুল থেকে কাঁচা বা কমপ্যাক্ট JSON গ্রহণ করেন, তখন এটিকে বিন্যাস করলে সেকেন্ডের মধ্যে এটি মানব-পঠনযোগ্য হয়। যখন আপনাকে JSON দক্ষতার সাথে প্রেরণ করতে হবে, তখন ছোট করা সমস্ত অপ্রয়োজনীয় হোয়াইটস্পেস সরিয়ে দেয়।
টুলটি কিভাবে ব্যবহার করবেন
ইনপুট বাক্সে JSON পেস্ট করুন, তারপর এটিকে সুন্দরভাবে ইন্ডেন্ট করা এবং পঠনযোগ্য দেখতে ফর্ম্যাট বেছে নিন, অথবা সম্ভাব্য ক্ষুদ্রতম আকারের জন্য প্রতিটি অপ্রয়োজনীয় স্থান এবং লাইন বিরতি বের করতে ছোট করুন। যদি JSON-এ একটি ত্রুটি থাকে, তাহলে টুলটি নীরবে ব্যর্থ হওয়ার পরিবর্তে কী ভুল হয়েছে তা রিপোর্ট করে, যা সাধারণত একটি স্ট্রে কমা বা একটি লগ ফাইল বা API প্রতিক্রিয়া থেকে আটকানো একটি বড় ব্লকে চাপা একটি অনুপস্থিত বন্ধনী সনাক্ত করার দ্রুততম উপায়।
JSON কি?
JSON হল একটি টেক্সট-ভিত্তিক ডেটা ফর্ম্যাট যা স্ট্রাকচার্ড ডেটাকে কী-মান পেয়ার (বস্তু) এবং অর্ডার করা তালিকা (অ্যারে) হিসাবে উপস্থাপন করে। এটি জাভাস্ক্রিপ্ট অবজেক্ট সিনট্যাক্স থেকে উদ্ভূত হয়েছে কিন্তু ভাষা-স্বাধীন — কার্যত প্রতিটি প্রোগ্রামিং ভাষার একটি JSON পার্সার রয়েছে।
একটি বৈধ JSON নথি হল: একটি বস্তু, একটি অ্যারে, একটি স্ট্রিং, একটি সংখ্যা, একটি বুলিয়ান (সত্য বা মিথ্যা), বা নাল৷
বৈধ JSON এর উদাহরণ:
{
"নাম": "এলিস",
"বয়স": 30,
"স্কোর": [৯৫, ৮৭, ৯১],
"সক্রিয়": সত্য
}
JSON বনাম XML
JSON মূলত ওয়েবে প্রভাবশালী ডেটা আদান-প্রদানের ফর্ম্যাট হিসাবে XML-কে প্রতিস্থাপিত করেছে কারণ এটি আরও কমপ্যাক্ট, পড়া সহজ এবং বেশিরভাগ প্রোগ্রামিং ভাষার (অবজেক্ট এবং অ্যারে) ডেটা স্ট্রাকচারে স্বাভাবিকভাবেই মানচিত্র।
এক নজরে নেস্টেড কাঠামো
অবজেক্ট এবং অ্যারে একে অপরের বেশ কয়েকটি স্তরের গভীরে বাসা বাঁধতে শুরু করলে ফর্ম্যাটিংয়ের আসল মান দেখা যায়, যা বাস্তব API প্রতিক্রিয়াগুলিতে সাধারণ। JSON-এর একটি গভীরভাবে নেস্টেড, মিনিফাইড ব্লব চোখের দ্বারা ট্রেস করা প্রায় অসম্ভব — একটি খোলার বন্ধনীকে এর সঠিক বন্ধনী বন্ধনীর সাথে কয়েক লাইনের দূরত্বে মেলানো ঠিক সেই ধরনের ক্লান্তিকর, ত্রুটি-প্রবণ কাজ একটি কম্পিউটার মানুষের চেয়ে অনেক বেশি ভালো করে। সামঞ্জস্যপূর্ণ ইন্ডেন্টেশন সহ ফর্ম্যাট করা JSON সেই একই কাঠামোটিকে এমন কিছুতে পরিণত করে যা আপনি দৃশ্যমানভাবে অনুসরণ করতে পারেন, স্তর অনুসারে, এই কারণেই প্রায় প্রতিটি বিকাশকারী সরঞ্জাম যা JSON প্রদর্শন করে, ব্রাউজার ডেভ টুল থেকে API ক্লায়েন্ট পর্যন্ত, প্রকৃতপক্ষে প্রেরিত সার্ভারের কাঁচা, কমপ্যাক্ট স্ট্রিং দেখানোর পরিবর্তে এটিকে ডিফল্টরূপে ফর্ম্যাট করে।
প্রিটি-প্রিন্টিং (ফরম্যাটিং)
একটি "মিনিফাইড" JSON স্ট্রিংটিতে কোনো অপ্রয়োজনীয় হোয়াইটস্পেস নেই:
{"নাম":"অ্যালিস","বয়স":30,"স্কোর":[95,87,91],"সক্রিয়":সত্য}
বৈধ হলেও, এটি পড়া কঠিন। "প্রেটি-প্রিন্টিং" বা "ফরম্যাটিং" ইন্ডেন্টেশন এবং নতুন লাইন যোগ করে:
নেস্টিংয়ের প্রতিটি স্তর 2 বা 4টি স্পেস দ্বারা ইন্ডেন্ট করা হয়। এটি গভীরভাবে নেস্টেড কাঠামোকে দৃশ্যমানভাবে নেভিগেট করা সহজ করে তোলে।
JSON এর উত্থানের একটি সংক্ষিপ্ত ইতিহাস
JSON 2000 এর দশকের গোড়ার দিকে ডগলাস ক্রকফোর্ড দ্বারা জনপ্রিয় হয়েছিল, যিনি একটি ডেটা ফর্ম্যাটকে নথিভুক্ত করেছিলেন এবং তার নামকরণ করেছিলেন যা তিনি লক্ষ্য করেছিলেন যে জাভাস্ক্রিপ্টের নিজস্ব বস্তুর আক্ষরিক সিনট্যাক্স সম্পূর্ণ নতুন কিছু উদ্ভাবনের পরিবর্তে ইতিমধ্যেই নিহিত ছিল। এটির সময় AJAX-চালিত ওয়েব অ্যাপ্লিকেশনগুলির বৃদ্ধির সাথে মিলে যায় যার জন্য একটি পূর্ণ পৃষ্ঠা পুনরায় লোড না করে ব্রাউজার এবং সার্ভারের মধ্যে ডেটা আদান-প্রদানের জন্য একটি হালকা উপায় প্রয়োজন এবং নেটিভ জাভাস্ক্রিপ্ট অবজেক্টের সাথে এর ঘনিষ্ঠ সাদৃশ্য মানে ব্রাউজারগুলি এটিকে প্রায় বিনামূল্যে পার্স করতে পারে। সরলতা এবং ভাল সময়ের সমন্বয়ের কারণেই JSON প্রায় এক দশকের মধ্যে ওয়েব API-এর জন্য ডিফল্ট পছন্দ হিসাবে আরও ভার্বোস XML-কে ছাড়িয়ে গেছে।
ওয়েব ডেভেলপমেন্টে JSON
ওয়েব APIগুলি অনুরোধ এবং প্রতিক্রিয়া সংস্থাগুলির জন্য অপ্রতিরোধ্যভাবে JSON ব্যবহার করে৷ ব্রাউজারের fetch() API এবং XMLHttpRequest উভয়ই JSON কে নেটিভভাবে পরিচালনা করে। সার্ভার-সাইড ল্যাঙ্গুয়েজ বিল্ট-ইন লাইব্রেরি ব্যবহার করে JSON পার্স করে: Python-এ json, JavaScript-এ JSON.parse, PHP-এ json_decode, Java-এ Gson/Jackson।
কেন ফরম্যাটিং এবং ছোট করা বিভিন্ন উদ্দেশ্যে কাজ করে
এই দুটি ক্রিয়াকলাপ বিদ্যমান কারণ JSON দুটি ভিন্ন ভিন্ন শ্রোতা দ্বারা পড়া হয়। ফরম্যাট করা, ইন্ডেন্টেড JSON হল মানুষের জন্য: একজন ডেভেলপার একটি API প্রতিক্রিয়া পরিদর্শন করে, একটি কনফিগারেশন ফাইল ডিবাগ করে, অথবা ডেভেলপমেন্টের সময় ডেটা পর্যালোচনা করে স্পষ্ট ইন্ডেন্টেশন থেকে প্রচুর পরিমাণে ডেটা পর্যালোচনা করে যা নেস্টেড অবজেক্ট এবং অ্যারের গঠনকে এক নজরে দৃশ্যমান করে। Minified JSON হল মেশিনগুলির জন্য: প্রতিটি অপ্রয়োজনীয় স্থান এবং লাইন বিরতি ছিনিয়ে নেওয়ার ফলে একটি নেটওয়ার্কের মাধ্যমে প্রেরণ করা বা ডিস্কে সংরক্ষণ করা প্রয়োজন এমন বাইটের সংখ্যা কমিয়ে দেয়, যখন একটি JSON পেলোড সার্ভারের মধ্যে দিনে হাজার বা মিলিয়ন বার পাঠানো হয় তখন এটি গুরুত্বপূর্ণ। কোনটিই অন্যটির চেয়ে বেশি "সঠিক" নয় — তারা কেবলমাত্র বিভিন্ন পাঠকদের জন্য অপ্টিমাইজ করে, এবং সেই মুহুর্তে একজন মানুষ বা একটি মেশিন পাঠ করছে কিনা তার উপর নির্ভর করে উভয়ের মধ্যে একটি ভাল কর্মপ্রবাহ চলে।
সাধারণ JSON ত্রুটি এবং সেগুলি কীভাবে চিহ্নিত করা যায়
একটি অবজেক্ট বা অ্যারেতে শেষ আইটেমের পরে একটি ট্রেলিং কমা হল সবচেয়ে ঘন ঘন ত্রুটিগুলির মধ্যে একটি, যেহেতু এটি জাভাস্ক্রিপ্ট অবজেক্ট লিটারেলে বৈধ কিন্তু JSON-এ স্পষ্টভাবে অননুমোদিত। সম্পত্তির নামগুলি সর্বদা ডবল-উদ্ধৃতিযুক্ত স্ট্রিং হতে হবে — উদ্ধৃত কী এবং একক-উদ্ধৃত স্ট্রিং উভয়ই অবৈধ, যদিও উভয়ই জাভাস্ক্রিপ্টে বৈধ। স্ট্যান্ডার্ড JSON-এ মন্তব্যগুলি মোটেও সমর্থিত নয়, তাই সহায়ক ইনলাইন মন্তব্য সহ একটি কনফিগারেশন ফাইল (যেমন JSONC ফর্ম্যাট VS কোড এটির সেটিংসের জন্য ব্যবহার করে) প্রযুক্তিগতভাবে JSON বৈধ নয় এবং একটি বিশেষ-উদ্দেশ্য পার্সার প্রয়োজন৷ যেহেতু JSON-এর ব্যাকরণ ইচ্ছাকৃতভাবে JavaScript-এর চেয়ে কঠোর, একটি জাভাস্ক্রিপ্ট অবজেক্টকে সরাসরি JSON ফিল্ডে আক্ষরিকভাবে অনুলিপি করা সিনট্যাক্স ত্রুটিগুলির একটি খুব সাধারণ উৎস এই টুলটি আপনাকে ধরতে সাহায্য করে।
আপনি ডেটা বিশ্বাস করার আগে যাচাই করা হচ্ছে
JSON পঠনযোগ্য করে তোলার বাইরে, এই টুলটি এটিকেও যাচাই করে, যা গুরুত্বপূর্ণ কারণ একটি একক ভুল অক্ষর JSON-এর অন্যথায়-সঠিক-সুদর্শন ব্লককে সম্পূর্ণরূপে অপার্শেবল করতে পারে। একটি অনুপস্থিত কমা বা একটি বন্ধ বন্ধনীর জন্য ম্যানুয়ালি শত শত লাইন স্ক্যান করার পরিবর্তে, পাঠ্যটি পেস্ট করা এবং পার্সার রিপোর্টটি ঠিক যেখানে এটি ব্যর্থ হয়েছে তা একটি ক্লান্তিকর ভিজ্যুয়াল অনুসন্ধানকে তাত্ক্ষণিক, সুনির্দিষ্ট উত্তরে পরিণত করে, যা বিশেষত মূল্যবান যখন একটি কনফিগারেশন ফাইল ডিবাগ করার সময় বা একটি API প্রতিক্রিয়া যা একটি প্রোগ্রাম গ্রহণ করতে অস্বীকার করে।
ব্যক্তিগত এবং তাত্ক্ষণিক
সমস্ত প্রক্রিয়াকরণ সম্পূর্ণরূপে আপনার ব্রাউজারে চলে, তাই বিন্যাস এবং ক্ষুদ্রকরণ তাত্ক্ষণিকভাবে ঘটবে এবং আপনার পেস্ট করা কোনো JSON কখনও কোথাও পাঠানো, লগ করা বা শেয়ার করা হয় না এবং পৃষ্ঠাটি লোড হয়ে গেলে এটি অফলাইনে কাজ করে।
JSON ফরম্যাটার FAQ
- JSON কি?
- JSON (জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন) হল একটি লাইটওয়েট ডেটা ইন্টারচেঞ্জ ফরম্যাট। এটি কী-মান জোড়া এবং অ্যারে সমন্বিত ডেটা অবজেক্টগুলিকে উপস্থাপন করতে মানব-পঠনযোগ্য পাঠ্য ব্যবহার করে।
- "ফরম্যাট" কি করে?
- ফরম্যাটিং (যাকে "প্রিটি-প্রিন্টিং"ও বলা হয়) JSON-কে মানব-পাঠযোগ্য করে তুলতে যথাযথ ইন্ডেন্টেশন এবং নতুন লাইন যোগ করে। ক্ষুদ্রতম সম্ভাব্য বৈধ JSON স্ট্রিং তৈরি করতে সমস্ত হোয়াইটস্পেস সরিয়ে ফেলা হয়।
- যাচাইকারী কি ত্রুটিগুলি ঠিক করে?
- না। টুলটি JSON পার্স করে এবং ভুল হলে ত্রুটি রিপোর্ট করে। ত্রুটি সংশোধন করা ব্যবহারকারীর উপর ছেড়ে দেওয়া হয়.