Difference between json.js and json2.js

前端 未结 3 1535
不思量自难忘°
不思量自难忘° 2020-12-12 14:24

Can someone tell me what the difference is between the 2 JSON parsers?

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

相关标签:
3条回答
  • 2020-12-12 14:36

    I also noticed that json2 stringified arrays differently than json2007.

    In json2007:

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

    In json2:

    var array = [];
    array[1] = "apple";
    array[2] = "orange";
    alert(JSON.stringify(array)); // Output: [null, "apple", "orange"].
    
    0 讨论(0)
  • 2020-12-12 14:49

    From their 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);
        };
    }
    

    I guess parseJSON is obsolete, therefore the new version (json2) doesn't even use it anymore. However if your code uses parseJSON a lot you could just add this piece of code somewhere to make it work again:

        Object.prototype.parseJSON = function (filter) {
            return JSON.parse(this, filter);
        };
    
    0 讨论(0)
  • 2020-12-12 14:53

    Quoting here:

    "JSON2.js - Late last year Crockford quietly released a new version of his JSON API that replaced his existing API. The important difference was that it used a single base object."

    0 讨论(0)
提交回复
热议问题