মূল বিষয়বস্তুতে যান
CuteJSON
↑↓ নেভিগেট Enter নির্বাচন Esc বন্ধ

JSON ডেটা টাইপ ব্যাখ্যা করা হয়েছে, পার্সার ভাঙার প্রান্তিক ক্ষেত্রগুলোর সাথে

প্রকাশিত 3 মিনিট পড়ুন Akash Kinkar Pandey দ্বারা

JSON এর ঠিক ছটি মানের ধরন আছে: স্ট্রিং, সংখ্যা, বুলিয়ান, নাল, অ্যারে এবং অবজেক্ট। স্পেসিফিকেশনে কিছুই সপ্তম ধরন যোগ করে না। এই ছোট তালিকা বলা সহজ এবং অনেক সময় ভুল করা আশ্চর্যজনকভাবে সহজ, বেশিরভাগই প্রত্যেক ধরনের প্রান্তিক ক্ষেত্রগুলোতে যা একটি ভাষার স্বদেশী ধরনগুলো ভাগ করে না।

স্ট্রিং

দ্বিতীয় উদ্ধৃতির মধ্যে পাঠ্য, কখনই একক উদ্ধৃতি নয়। 'hello' বৈধ JSON নয়, শুধুমাত্র "hello" বৈধ। একটি স্ট্রিংয়ের মধ্যে কিছু অক্ষরের এস্কেপ প্রয়োজন: নিজেই উদ্ধৃতি (\"), ব্যাকস্ল্যাশ (\\), এবং নিয়ন্ত্রণ অক্ষর \n, \r, \t, \b এবং \f। বাকি সবকিছু, যার মধ্যে বেশিরভাগ ইউনিকোড পাঠ্য অন্তর্ভুক্ত, এস্কেপ ছাড়াই রাখা যায় যতক্ষণ ফাইলটি নিজেই বৈধ UTF-8। JSON Escape and Unescape উভয় দিকে রূপান্তর পরিচালনা করে এবং সঠিকভাবে জানায় কোন অক্ষর একটি ত্রুটিপূর্ণ এস্কেপ সিক্ভেন্স ভেঙেছে, সাধারণ পার্সার ত্রুটির পরিবর্তে।

সংখ্যা

একটি মাত্র সংখ্যাত্মক ধরন, কিছু ভাষার মতো আলাদা পূর্ণসংখ্যা এবং ফ্লোট ধরন নয়। একটি JSON সংখ্যা হলো অংকের একটি ধারা, একটি ঐচ্ছিক দশমিক বিন্দু, এবং একটি ঐচ্ছিক ঘাতাংক: 42, -3.14, 2.5e10। কোনো হেক্সাডেসিমাল নয়, কোনো Infinity নয়, কোনো NaN নয়, এবং শূন্য নয় এমন অংকের আগে অগ্রণী শূন্য নয় (0132 অবৈধ, 0.123 ঠিক আছে)। এখানে সবচেয়ে তীব্র প্রান্তিক ক্ষেত্র: JavaScript এর নিজের Number ধরন 64-বিট ফ্লোট, যা প্রায় 2^53 (প্রায় নয় ট্রিলিয়ন) বেশি প্রতিটি পূর্ণসংখ্যাকে সঠিকভাবে প্রতিনিধিত্ব করতে পারে না। একটি 64-বিট ডাটাবেস ID বা Snowflake ID সহ একটি JSON ডকুমেন্ট ব্রাউজার কনসোলে JSON.parse দিয়ে পার্স করুন এবং শেষের অংকগুলো চুপচাপ গোলাকার হয়ে ফিরতে পারে। এই সাইটের JSON Formatter JSON.parse এর পরিবর্তে টোকেন স্ট্রিমের উপর তৈরি যাতে কুড়ি অংকের একটি পূর্ণসংখ্যা গোলাকার না হয়ে ফিরে আসে, এবং যে সংখ্যাগুলো সুরক্ষিতভাবে প্রতিনিধিত্ব করতে না পারার তা না বলে গোল করার পরিবর্তে রিপোর্ট করে।

বুলিয়ান

ঠিক দুটি মৌলিক মান, ছোট অক্ষরে, উদ্ধৃতি ছাড়া: true এবং false। "true" একটি স্ট্রিং, বুলিয়ান নয়, এবং বাগের একটি সাধারণ উৎস যখন একটি বুলিয়ান হওয়া উচিত ফিল্ড কোথাও উপরের ধারায় পাঠ্য হিসাবে সিরিয়ালাইজ হয়।

নাল

একটি মৌলিক মান, ছোট অক্ষরে, উদ্ধৃতি ছাড়া: null। এটি একটি মানের ইচ্ছাকৃত অনুপস্থিতি নির্দেশ করে, যা একটি সম্পূর্ণরূপে অনুপস্থিত কী থেকে আলাদা। {"middleName": null} বলে “এই ব্যক্তির কোনো দ্বিতীয় নাম নেই, এবং আমরা যাচাই করেছি।” middleName কী একদম না থাকা একটি ডকুমেন্ট কোনো থাকে কিনা সে সম্পর্কে কিছু বলে না। যে APIs দুটিকে গুলিয়ে ফেলে (অনুপস্থিত কী এবং নাল মান পরস্পর বিনিময়যোগ্যভাবে ব্যবহার করে) সেই পার্থক্য প্রাপক পক্ষের জন্য পুনরুদ্ধার করা অসম্ভব করে দেয়।

অ্যারে

একটি ক্রমবদ্ধ তালিকা, [ ], কমা দ্বারা আলাদা, যে কোনো ধরনের উপাদান সহ একই অ্যারেতে মিশ্রিত ধরন অন্তর্ভুক্ত: [1, "two", true, null] বৈধ JSON যদিও এটি একটি বিচিত্র স্কিমা পছন্দ হতো। ক্রম গ্যারান্টি দেওয়া হয় এবং গুরুত্বপূর্ণ; একই উপাদান ভিন্ন ক্রমে দুটি অ্যারে ভিন্ন মান।

অবজেক্ট

কী-মান জুটির একটি অক্রমবদ্ধ সেট, { }, কী সবসময় স্ট্রিং (এমনকি সংখ্যাত্মক দেখতে কী "2" একটি স্ট্রিং, সংখ্যা নয়), মান যে কোনো ধরনের। একটি অবজেক্টের মধ্যে একই নামের দুটি কী ব্যাকরণ দ্বারা নিষিদ্ধ নয়, যদিও স্পেসিফিকেশন আচরণকে “অনুশীলনীয় নয়” বলে এবং পরবর্তী যা ঘটে তা পার্সারের উপর ছেড়ে দেয়; বেশিরভাগ বাস্তবায়ন, যার মধ্যে JSON.parse অন্তর্ভুক্ত, চুপচাপ শেষটি রাখে এবং আগেগুলো বর্জন করে। JSON Validator একটি ডুপ্লিকেট কীকে সতর্কতা হিসাবে চিহ্নিত করে একটি ডুপ্লিকেট কী সহ ডকুমেন্টকে চুপচাপ পাস করতে দেওয়ার পরিবর্তে, যেহেতু কোন মান বেঁচে থাকে তা সেই ধরনের বিষয় যা স্পষ্ট সিদ্ধান্ত হওয়া উচিত।

ছটি ধরনের কোনোটিই যা ধরতে পারে না

কোনো তারিখ ধরন নয়: একটি টাইমস্ট্যাম্প একটি স্ট্রিং, প্রায় সবসময় ISO 8601 ("2026-08-24T10:00:00Z"), রীতি থেকে JSON নিজেই যা প্রয়োগ করে তা নয়। কোনো undefined নয়: JavaScript এ undefined হওয়া কীটি অবজেক্ট থেকে বাদ দেওয়া হয় সেই মান দিয়ে লেখার পরিবর্তে, যেহেতু JSON এর জন্য এর কোনো মৌলিক নেই। কোনো ফাংশন নয়, কোনো Map বা Set নয়, ডকুমেন্টের কোথাও কোনো মন্তব্য নয়। এই যেকোনোটির প্রয়োজন এমন ফরম্যাট (কনফিগারেশনে ইনলাইন মন্তব্য, উদাহরণস্বরূপ) ইচ্ছাকৃতভাবে একটি আলাদা ফরম্যাট বেছে নিচ্ছে, JSON এক্সটেনশন নয়; JSON vs YAML দেখুন মন্তব্য সমর্থন এবং অন্যান্য কিছু সুবিধার সাথে আসা আপোষ।

এটি চেষ্টা করা

যেকোনো ডকুমেন্ট JSON Viewer এ পেস্ট করুন এবং প্রতিটি মানের গাছে নিজের রং এবং ব্যাজ পায়, যা কাঁচা পাঠ্য অক্ষর অক্ষরে পড়ার পরিবর্তে একটি ডকুমেন্ট কীভাবে টাইপ করা হয়েছে তা দ্রুত দেখার একটি উপায়। বাক্যবিন্যাসের নিয়ম এক নজরে দেখতে, JSON Cheat Sheet দেখুন।

সব পোস্টে ফিরুন