特定网站上的数组出现意外的JSON.stringify行为

时间:2017-08-07 09:17:17

标签: javascript arrays json

我正在运行JSON3库失败,因为出于某种原因,JSON.stringify在特定网站上返回不同的结果,遗憾的是该页面落后于登录但是我提供了图像。

'concursolutions.com'门户的主页,如果有人有登录。

相似之处 -

  1. 这两个函数都使用'native function'(如图所示)
  2. 两个页面都使用HTML5 doctype(即。)
  3. 均在chrome 59上进行测试
  4. 我还应该检查什么?我的想法

    我使用的代码:

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

    意外行为 enter image description here

    预期行为

    enter image description here

1 个答案:

答案 0 :(得分:0)

最终找到答案,问题是'prototype.js'版本1.6.1.0中的BUG

prototype.js库修改/覆盖许多“原生”函数。

prototype将toJSON函数添加到数组中,这会导致JSON.stingify获取该值而不是原始值。

有关'toJSON'行为的更多信息

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON()_behavior