誰かが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
)。これらのメソッドは、どの新しいバージョンにも表示されません。
誰かが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が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"].