[json] json.js와 json2.js의 차이점

누군가 2 JSON 파서의 차이점을 말해 줄 수 있습니까?

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

2007-04-13의 JSON 파일이 있습니다 (와 같은 메서드가 있습니다 parseJSON). 새 버전에서는 이러한 방법이 표시되지 않습니다.



답변

그들의 코드에서 :

// 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);
    };


답변

여기에서 인용 :

“JSON2.js-작년 말 Crockford는 기존 API를 대체하는 새 버전의 JSON API를 조용히 출시했습니다. 중요한 차이점은 단일 기본 개체를 사용한다는 점입니다.”


답변

또한 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"].


답변