问题
使用JSON.stringify序列化对象时报错。
分析
原因
- 存在自己引用自己的情况
解决办法
不太建议用以下方法来解决,除非特殊情况。在做参数化的过程中会发现存在对象的情况,自己构造的对象还好,当引用第三方库的对象做序列化的时候,就不建议这么做。需要做的是将这些对象提取出来,构造一个没有自己引用自己的对象。
var cache = [];
var aa = JSON.stringify(rowData, function(key, value) {
if (typeof value === 'object' && value !== null) {
if (cache.indexOf(value) !== -1) {
return;
}
cache.push(value);
}
return value;
});
cache = null;