Différence entre json.js et json2.js
est-ce que quelqu'un peut me dire quelle est la différence entre les 2 parsers JSON?
https://github.com/douglascrockford/JSON-js/blob/master/json.js
https://github.com/douglascrockford/JSON-js/blob/master/json2.js
j'ai un fichier JSON de 2007-04-13 (il a des méthodes telles que parseJSON
). Je ne vois pas ces méthodes dans les nouvelles versions.
3 réponses
D'après leur code:
// 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);
};
}
je suppose que parseJSON est obsolète, donc la nouvelle version (json2) ne l'utilise même plus. Cependant, si votre code utilise parseJSON
beaucoup, vous pouvez juste ajouter ce morceau de code quelque part pour le faire fonctionner à nouveau:
Object.prototype.parseJSON = function (filter) {
return JSON.parse(this, filter);
};
j'ai aussi remarqué que json2 stringified tableaux différemment json2007.
Dans json2007:
var array = [];
array[1] = "apple";
array[2] = "orange";
alert(array.toJSONString()); // Output: ["apple", "orange"].
Dans json2:
var array = [];
array[1] = "apple";
array[2] = "orange";
alert(JSON.stringify(array)); // Output: [null, "apple", "orange"].