json2.js JSON.stringify()在处理更大的值时生成堆栈溢出

时间:2013-04-28 03:45:13

标签: javascript json jscript wsh

JSON.stringify(value)无法处理更大的值。它会导致“堆栈溢出”错误。有解决方法吗?

json2.js来自https://github.com/douglascrockford/JSON-js

我通过cscript.exe(WSH)在Windows DOS上运行我的JavaScript程序,这是Windows 7和Windows 8上的JScript v5.8。

我无法找到使用JScript v5.8中内置JSON的方法。 所以我包括json2.js,它的工作原理! 它工作但不是很好。当mydata只是一个更大的结构时,JSON.stringify(mydata)生成“堆栈溢出”。

我包含json2.js的方式是: 打开json2.js,将整个json2.js读入字符串ss,eval(ss)。然后JSON就可以使用了。

顺便说一句,我在cscript.exe JScript v5.8中看不到JSON,如何启用它?

1 个答案:

答案 0 :(得分:1)

通过WScript / CScript提供的脚本引擎是IE7中使用的脚本引擎 - 因此没有您已经找到的JSON对象(并且无法以某种方式“启用”它)。

堆栈溢出的最可能原因是尝试序列化递归结构而不是正确的树。我不相信JSON2.js支持这种情况。具有自引用的简单结构如下(正常JSON.stringify失败)

 var node = { a:"text"};
 node.next = node;