0

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 并且它有效!它有效但不是很好。JSON.stringify(mydata) 当 mydata 只是一个更大的结构时会生成“堆栈溢出”。

我包含json2.js的方式是:打开json2.js,将整个json2.js读入一个字符串ss,eval(ss)。然后 JSON 变得可用并且可以工作。

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

4

1 回答 1

1

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

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

 var node = { a:"text"};
 node.next = node;
于 2013-04-28T04:01:08.243 回答