谁能告诉我2个JSON解析器之间的区别是什么?
https://github.com/douglascrockford/JSON-js/blob/master/json.js
https://github.com/douglascrockford/JSON-js/blob/master/json2.js
我有一个2007年4月13日起的JSON文件(其中包含的方法parseJSON
)。我没有在任何新版本中看到这些方法。
谁能告诉我2个JSON解析器之间的区别是什么?
https://github.com/douglascrockford/JSON-js/blob/master/json.js
https://github.com/douglascrockford/JSON-js/blob/master/json2.js
我有一个2007年4月13日起的JSON文件(其中包含的方法parseJSON
)。我没有在任何新版本中看到这些方法。
Answers:
从他们的代码:
// 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对数组的字符串化与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"].