Json.js এবং json2.js এর মধ্যে পার্থক্য


87

কেউ আমাকে বলতে পারেন যে 2 জেএসএন পার্সারের পার্থক্য কী?

https://github.com/douglascrockford/JSON-js/blob/master/json.js
https://github.com/douglascrockford/JSON-js/blob/master/json2.js

আমার 2007-04-15 এ একটি জেএসএন ফাইল রয়েছে (এটির মতো পদ্ধতি রয়েছে parseJSON)। আমি নতুন সংস্করণগুলির কোনওটিতে এই পদ্ধতিগুলি দেখতে পাচ্ছি না।


4
আপনি নতুন ফাইলটি এখানে পাবেন github.com/douglascrockford/JSON-js
ড্যানিয়েল লিটল

4
এই ফাইলগুলি কী কী তা নিয়ে এই প্রশ্নে যে কেউ এসেছেন, তাদের জন্য জেনে রাখুন যে আধুনিক ব্রাউজারগুলিতে এগুলি ব্যবহার করার কোনও কারণ নেই। থেকে GitHub রেপো । "বর্তমান ব্রাউজারে, [json2.js] কিছুই না, করা উচিত ছিল বিল্ট-ইন JSON বস্তু আছে, যদি না ভাগ্য আপনি বাধ্য এই ফাইলটি ব্যবহার করতে IE8, যা কিছু সমর্থন করার জন্য কোনো কারণ নেই যে কেউ কখনো উচিত আবার করতে হবে। "
থান্ডারফোরজ

উত্তর:


59

তাদের কোড থেকে:

// Augment the basic prototypes if they have not already been augmented.
// These forms are obsolete. It is recommended that JSON.stringify and
// JSON.parse be used instead.

if (!Object.prototype.toJSONString) {
    Object.prototype.toJSONString = function (filter) {
        return JSON.stringify(this, filter);
    };
    Object.prototype.parseJSON = function (filter) {
        return JSON.parse(this, filter);
    };
}

আমার ধারণা পার্সজেএসএন অপ্রচলিত, তাই নতুন সংস্করণ (জসন 2) এমনকি এটি আর ব্যবহার করে না। তবে আপনার কোডটি যদি parseJSONপ্রচুর পরিমাণে ব্যবহার করে তবে আপনি কোডটির এই টুকরোটি আবার কোথাও যুক্ত করতে যোগ করতে পারেন:

    Object.prototype.parseJSON = function (filter) {
        return JSON.parse(this, filter);
    };

4
ধন্যবাদ, সুতরাং দেখা যাচ্ছে যে পার্সজেএসনকে JSON.parse দ্বারা প্রতিস্থাপন করা হয়েছে? এছাড়াও, জেএসএনস্ট্রিং সম্পর্কে কী? আমাদের বিদ্যমান কোডটি এই পদ্ধতিগুলির প্রচুর পরিমাণে ব্যবহার করে: বুলেট.ন.জে জেএসএসনস্ট্রিং () তারিখ. টোএসএসটিস্ট্রিং () নম্বর. টোএসএসটিস্ট্রিং () অবজেক্ট. টোএসএসটিস্ট্রিং () স্ট্রিং.টোজেএসনস্ট্রিং ()

4
তারপরে কোডের 1 ম অংশটিও যুক্ত করুন, আপনার নির্দিষ্ট করা সমস্ত মানগুলি অবজেক্টস, সুতরাং সেগুলি সমস্তই স্বয়ংক্রিয়ভাবে JSON.stringify ব্যবহারে রূপান্তরিত হবে।
লুকা ম্যাটেইস

ধন্যবাদ! আমি এটি ব্যবহার করে দেখুন। সুতরাং, আমি কি json.js ফাইলটিতে এই ফাংশনগুলি যুক্ত করতে পারি?

"অপ্রচলিত" - পরম বা অপ্রচলিত?
এরিক

84
"অপ্রচলিত" - যখন এটি অবশ্যই অপ্রচলিত।
ডেভিডটবার্নাল

31

এখানে উদ্ধৃতি :

"জেএসএন ২.জেএস - গত বছরের শেষের দিকে ক্রকফোর্ড চুপচাপ তাঁর জাসন এপিআইয়ের একটি নতুন সংস্করণ প্রকাশ করেছিলেন যা তার বিদ্যমান এপিআই প্রতিস্থাপন করেছিল। গুরুত্বপূর্ণ পার্থক্যটি ছিল এটি একটি একক বেস অবজেক্ট ব্যবহার করেছিল।"


25

আমি আরও লক্ষ্য করেছি যে json2 স্ট্রিংযুক্ত অ্যারেগুলি json2007 এর চেয়ে আলাদাভাবে রয়েছে।

Json2007 এ:

var array = [];
array[1] = "apple";
array[2] = "orange";
alert(array.toJSONString()); // Output: ["apple", "orange"].

Json2 এ:

var array = [];
array[1] = "apple";
array[2] = "orange";
alert(JSON.stringify(array)); // Output: [null, "apple", "orange"].

4
json2 এই ক্ষেত্রে সঠিক। json2007 সূচক 0 প্রথম উপাদান উপেক্ষা করার ভুল ছিল
রব Kinyon
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.