Разница между json.js и json2.js
Может ли кто-нибудь сказать мне, какая разница между двумя парсерами JSON?
https://github.com/douglascrockford/JSON-js/blob/master/json.js
https://github.com/douglascrockford/JSON-js/blob/master/json2.js
У меня есть файл JSON с 2007-04-13 (у него есть методы, такие как parseJSON
). Я не вижу эти методы в любой из новых версий.
Ответы
Ответ 1
Из своего кода:
// 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);
};
}
Я думаю, что parseJSON устарел, поэтому новая версия (json2) даже не использует его. Однако, если ваш код использует parseJSON
, вы можете просто добавить этот фрагмент кода, чтобы он снова работал:
Object.prototype.parseJSON = function (filter) {
return JSON.parse(this, filter);
};
Ответ 2
Цитата здесь:
"JSON2.js - В конце прошлого года Crockford спокойно выпустил новую версию своего JSON API, который заменил его существующий API. Важным отличием было то, что он использовал один базовый объект.
Ответ 3
Я также заметил, что строковые решетки 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"].