63 votes

Différence entre json.js et json2.js

Quelqu'un peut-il me dire quelle est la différence entre les deux analyseurs 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 datant du 2007-04-13 (il contient des méthodes telles que parseJSON ). Je ne vois pas ces méthodes dans les nouvelles versions.

50voto

Luca Matteis Points 19338

De 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 pourriez simplement ajouter ce bout de code quelque part pour le faire fonctionner à nouveau :

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

26voto

paxdiablo Points 341644

Citation : aquí :

" JSON2.js " - À la fin de l'année dernière, M. Crockford a publié discrètement une nouvelle version de son API JSON qui a remplacé son API existante. La différence importante était qu'elle utilisait un seul objet de base."

11voto

Vimil Saju Points 146

J'ai aussi remarqué que json2 stringifiait les tableaux différemment de 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"].

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X