JSON কীগুলি কেন উদ্ধৃতিতে হওয়া উচিত তা সম্পর্কে আসল কারণ, ECMAScript 3 এর সনাক্তকারীগুলির শব্দার্থবিজ্ঞানের উপর নির্ভর করে।
সংরক্ষিত শব্দগুলি উদ্ধৃতি ব্যতীত অবজেক্ট লিটারালসে সম্পত্তির নাম হিসাবে ব্যবহার করা যায় না , উদাহরণস্বরূপ:
({function: 0})
({if: 0})
({true: 0})
আপনি যদি উদ্ধৃতি ব্যবহার করেন তবে সম্পত্তির নামগুলি বৈধ:
({"function": 0})
({"if": 0})
({"true": 0})
নিজস্ব ক্রকফোর্ড এই আলোচনায় এটি ব্যাখ্যা করে , তারা জেএসএন স্ট্যান্ডার্ডকে সহজ রাখতে চেয়েছিল এবং তারা এটিতে এই সমস্ত শব্দার্থিক বিধিনিষেধ রাখতে চায় না:
....
এটি তখনই যখন আমরা অকেজো নামটির সমস্যাটি আবিষ্কার করি। দেখা যাচ্ছে ইসিএমএ স্ক্রিপ্ট 3 এর একটি ছটফট সংরক্ষিত শব্দ নীতি রয়েছে। সংরক্ষিত শব্দগুলির মূল অবস্থানটি উদ্ধৃত করতে হবে, যা সত্যই একটি উপদ্রব। আমি যখন এটি একটি স্ট্যান্ডার্ড হিসাবে রূপায়ণ করতে ঘুরেছিলাম, তখন আমি সংরক্ষণ করা সমস্ত শব্দকে স্ট্যান্ডার্ডে রাখতে চাইনি, কারণ এটি সত্যই বোকা দেখাবে।
এই সময়, আমি লোকদের বোঝানোর চেষ্টা করছিলাম: হ্যাঁ, আপনি জাভাস্ক্রিপ্টে অ্যাপ্লিকেশন লিখতে পারেন, এটি আসলে কাজ করছে এবং এটি একটি ভাল ভাষা। আমি তখন বলতে চাইনি, একই সাথে: এবং তারা যা করেছে তা সত্যিই বোকা জিনিসটি দেখুন! সুতরাং আমি স্থির করেছিলাম, পরিবর্তে, আসুন কেবল কীগুলি উদ্ধৃত করব।
এইভাবে, এটি কতটা খারাপ তা সম্পর্কে আমাদের কাউকে বলার দরকার নেই।
এ কারণেই, আজ পর্যন্ত, কীগুলি জেএসএনে উদ্ধৃত হয়েছে।
...
ECMAScript 5 ম সংস্করণ স্ট্যান্ডার্ড এটিকে ঠিক করে, এখন ES5 বাস্তবায়নে, এমনকি সংরক্ষিত শব্দ দুটি উদ্ধৃতি ছাড়াই ব্যবহার করা যেতে পারে, অবজেক্ট আক্ষরিক এবং সদস্য অ্যাক্সেস ( obj.function
ES5 এ ঠিক আছে)।
কেবল রেকর্ডের জন্য, এই স্ট্যান্ডার্ডটি আজকাল সফ্টওয়্যার বিক্রেতারা প্রয়োগ করছেন, আপনি দেখতে পাচ্ছেন যে ব্রাউজারগুলি এই সামঞ্জস্যতা টেবিলটিতে এই বৈশিষ্ট্যটি অন্তর্ভুক্ত করেছে ( সংরক্ষিত শব্দগুলি সম্পত্তির নাম হিসাবে দেখুন )