লেখার সময়, জেএসএন সম্পূর্ণরূপে আরএফসি 4627 এ বর্ণিত ছিল । এটি JSON পাঠকে সিরিয়ালযুক্ত বস্তু বা অ্যারে হিসাবে বর্ণনা করেছে ("2" এর শুরুতে) start
এর অর্থ হল যে কেবল {}
এবং []
বৈধ, পার্সার এবং স্ট্রিংফায়ারগুলিতে JSON স্ট্রিংগুলি সম্পূর্ণ হয় যা সেই মানটিকে মেনে চলে।
তবে , ইসিএমএ -404 এর পরিচিতি পরিবর্তিত হয় এবং আপডেট পরামর্শটি এখানে পড়তে পারেন । আমি ইস্যুতে একটি ব্লগ পোস্ট লিখেছি ।
তবে বিষয়টি আরও বিভ্রান্ত করার জন্য, ওয়েব ব্রাউজারগুলিতে উপলভ্য JSON
অবজেক্টটি (যেমন JSON.parse()
এবং JSON.stringify()
) ES5 তে মানক করা হয়েছে এবং এটি স্পষ্টভাবে গ্রহণযোগ্য জেএসওএন পাঠ্যকে সংজ্ঞায়িত করে:
এই স্পেসিফিকেশনে ব্যবহৃত JSON ইন্টারচেঞ্জ ফর্ম্যাটটি হ'ল আরএফসি 4627 দুটি ব্যতিক্রম সহ বর্ণিত:
এর অর্থ এই হবে যে সমস্ত জেএসওএন মানগুলি (স্ট্রিং, নালস এবং সংখ্যাগুলি সহ) জেএসওএন বস্তু দ্বারা গৃহীত হয়েছে, যদিও জেএসওএন অবজেক্টটি প্রযুক্তিগতভাবে আরএফসি 4627 মেনে চলে।
নোট করুন যে অতএব আপনি কনফর্মেন্ট ব্রাউজারে এমন একটি নম্বর JSON.stringify(5)
দিয়ে স্ট্রাইফাই করতে পারবেন যা আরএফসি 4627 মেনে চলা অন্য কোনও পার্সার দ্বারা প্রত্যাখ্যাত হবে, তবে এর উপরে উল্লিখিত নির্দিষ্ট ব্যতিক্রম নেই। উদাহরণস্বরূপ, রুবি এমন একটি উদাহরণ বলে মনে হবে যা কেবলমাত্র বস্তু এবং অ্যারেটিকে মূল হিসাবে গ্রহণ করে । অন্যদিকে পিএইচপি বিশেষত ব্যতিক্রম যুক্ত করে যে "এটি স্কেলারের ধরণ এবং এনওএলএলকে এনকোড এবং ডিকোডও করবে"।