当前位置:  开发笔记 > 前端 > 正文

json.js和json2.js之间的区别

如何解决《json.js和json2.js之间的区别》经验,为你挑选了3个好方法。

有人能告诉我两个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).我没有在任何新版本中看到这些方法.



1> Luca Matteis..:

从他们的代码:

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


"过时" - 当它绝对过时了.

2> paxdiablo..:

引用这里:

"JSON2.js - 去年年底,Crockford悄然发布了他的JSON API的新版本,取代了他现有的API.重要的区别在于它使用了一个基础对象."



3> 小智..:

我还注意到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"].


在这种情况下,json2是正确的.json2007忽略了索引0处的第一个元素是错误的.
推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有