带有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