带有Prototype.js的JSON.stringify()数组异常

我试图找出json序列化出了什么问题,将我的应用程序的当前版本与旧版本一起使用,并发现JSON.stringify()的工作方式中存在一些令人惊讶的差异(使用json.org中的JSON库)

)。

在我的应用的旧版本中:

 JSON.stringify({"a":[1,2]})

给我这个

"{\"a\":[1,2]}"

在新版本中,

 JSON.stringify({"a":[1,2]})

给我这个

"{\"a\":\"[1, 2]\"}"

任何想法都可能会发生什么变化,以使同一库在新版本中在数组括号内加上引号?

回答:

由于JSON.stringify最近已经随某些浏览器一起提供,所以我建议使用它而不是Prototype的toJSON。然后,您将检查window.JSON

&&

window.JSON.stringify,否则仅包含json.org库(通过document.createElement('script')…)。要解决不兼容问题,请使用:

if(window.Prototype) {

delete Object.prototype.toJSON;

delete Array.prototype.toJSON;

delete Hash.prototype.toJSON;

delete String.prototype.toJSON;

}

以上是 带有Prototype.js的JSON.stringify()数组异常 的全部内容, 来源链接: utcz.com/qa/409577.html

回到顶部