যদি আমি উপরের বিষয়টিকে JSON ব্যবহার করে রূপান্তর করি var jSonString = JSON.stringify(testObject);
তবে 2 (জেএস আপত্তি এবং জেএসএন) এর মধ্যে পার্থক্য কী?
জেএসএন একটি ডেটা ইন্টারচেঞ্জ ফর্ম্যাট। এটি এমন একটি মানদণ্ড যা বর্ণনা করে যে কীভাবে অর্ডার করা তালিকাগুলি এবং আনর্ডারড মানচিত্র, স্ট্রিং বুলেট এবং সংখ্যাকে একটি স্ট্রিংয়ে উপস্থাপন করা যেতে পারে। এক্সএমএল এবং ওয়াইএএমএল যেমন ভাষার মধ্যে কাঠামোগত তথ্য পাস করার উপায়, তেমনি জেএসওএনও একই রকম। অন্যদিকে একটি জাভাস্ক্রিপ্ট অবজেক্ট একটি শারীরিক ধরণ। ঠিক যেমন একটি পিএইচপি অ্যারে, একটি সি ++ শ্রেণি / স্ট্রাক্ট, একটি জাভাস্ক্রিপ্ট অবজেক্ট জাভাস্ক্রিপ্টের অভ্যন্তরীণ।
এখানে একটি গল্প। আসুন কল্পনা করুন যে আপনি কোনও দোকান থেকে কিছু আসবাব কিনেছেন এবং আপনি এটি সরবরাহ করতে চান। তবে মজুতের একমাত্র বাকী হ'ল প্রদর্শন মডেল, তবে আপনি এটি কিনতে সম্মত হন।
দোকানে, আপনি কিনেছেন বুক অফ ড্রয়ারগুলি একটি জীবন্ত বস্তু:
var chestOfDrawers = {
color: "red",
numberOfDrawers: 4
}
যাইহোক, আপনি পোস্টে বুক অফ ড্রয়ারগুলি প্রেরণ করতে পারবেন না, সুতরাং আপনি এটিকে ভেঙে ফেলুন (পড়ুন, স্ট্রিংফাই করুন)। আসবাবের ক্ষেত্রে এটি এখন অকেজো। এটি এখন জেএসএন। এটি ফ্ল্যাট প্যাক আকারে।
{"color":"red","numberOfDrawers":4}
আপনি যখন এটি পান, আপনি তারপরে বুকের আঁকারগুলি পুনরায় তৈরি করুন (এটি পড়ুন, পার্স করুন)। এটি এখন কোনও অবজেক্ট ফর্মে ফিরে এসেছে।
জেএসএন / এক্সএমএল এবং ওয়াইএএমএলের পিছনে কারণ হ'ল উভয় অংশীদার ভাষা বুঝতে পারে এমন ফর্ম্যাটে প্রোগ্রামিং ভাষার মধ্যে ডেটা স্থানান্তর করতে সক্ষম করা; আপনি সরাসরি আপনার জাভাস্ক্রিপ্ট অবজেক্টটি পিএইচপি বা সি ++ দিতে পারবেন না; কারণ প্রতিটি ভাষা হুডের নীচে পৃথকভাবে কোনও বস্তুর প্রতিনিধিত্ব করে। যাইহোক, কারণ আমরা জেএসএন নোটেশনে বস্তুটি স্ট্রাইটিং করেছি; অর্থাত্ উপাত্ত উপস্থাপনের একটি প্রমিত উপায়, আমরা বস্তুর JSON উপস্থাপনাটি অন্য ল্যাঙ্গেজ (সি ++, পিএইচপি) এ প্রেরণ করতে পারি , তারা জাভাস্ক্রিপ্ট অবজেক্টটি আমাদের নিজের বস্তুতে জেএসএন উপস্থাপনার ভিত্তিতে পুনরায় তৈরি করতে পারে ।
এটি লক্ষণীয় গুরুত্বপূর্ণ যে জেএসএন কার্য বা তারিখগুলি উপস্থাপন করতে পারে না। যদি আপনি কোনও ফাংশন সদস্যের সাথে কোনও বস্তুকে স্ট্রিংফাই করার চেষ্টা করেন তবে ফাংশনটি JSON উপস্থাপন থেকে বাদ দেওয়া হবে। একটি তারিখ একটি স্ট্রিংয়ে রূপান্তরিত হবে;
JSON.stringify({
foo: new Date(),
blah: function () {
alert('hello');
}
}); // returns the string "{"foo":"2011-11-28T10:21:33.939Z"}"