我不需要使用json字符串并使用$ .parseJSON,而是将对象存储在变量中,并将其存储为表示json的字符串.
(我正在处理的库需要格式错误的json类型,所以我需要弄乱它以使其工作.)
最好的方法是什么?
我需要一个函数从任何参数构建一个JSON有效字符串,但是:
通常它应该能够以截断它们为代价来处理大对象.
作为参考,此代码失败:
var json = JSON.stringify(window);
Run Code Online (Sandbox Code Playgroud)
避免递归问题很简单:
var seen = [];
return JSON.stringify(o, function(_, value) {
if (typeof value === 'object' && value !== null) {
if (seen.indexOf(value) !== -1) return;
else seen.push(value);
}
return value;
});
Run Code Online (Sandbox Code Playgroud)
但现在,除了复制并更改道格拉斯Crockford的代码追踪深度的,我没有发现任何方式,以避免像很深刻的对象堆栈溢出window或任何event.有简单的解决方案吗?