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.

83
demandé sur Yi Jiang 2009-02-16 06:15:35

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);
    };
57
répondu Luca Matteis 2011-02-04 19:07:38

citant ici :

" JSON2.js-fin de L'année dernière Crockford a tranquillement publié une nouvelle version de son API JSON qui a remplacé son API existante. La différence importante était qu'il utilisait un seul objet de base."

31
répondu paxdiablo 2009-02-16 03:30:21

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"].
22
répondu Vimil Saju 2012-06-21 13:54:30