javascript - JSON.stringify() 数组与 Prototype.js 的奇怪之处

标签 javascript json prototypejs

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

在我的应用程序的旧版本中:

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

关于javascript - JSON.stringify() 数组与 Prototype.js 的奇怪之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40770693/

相关文章:

javascript - Parse Cloud 代码迭代结果问题

javascript - 我正在使用prototype.js 将 POST 内容传递到 php 脚本,但 FILE POST 不会

javascript - jQuery有这样的效果吗?这是使用原型(prototype)

javascript - 原型(prototype)对象的正确架构

javascript - 从提示符中获取数组并插入 MongoDB 数据库

javascript - 检查 JQuery 每个函数中的最后一个元素

javascript - 将动态 HTML 类存储为 JS 变量

javascript - Polymer 2.0 firebase-query 无法与 dom-repeat 模板一起使用

javascript - Highcharts 循环 JSON 对象来填充数据系列

mysql - 如何从POSTMAN客户端将数据发布到表中