js 中JSON parse和stringify
在项目中用JSON转字符串的时候大家可能会用到stringify 如果直接写可能会遇到转换报错:
Converting circular structure to JSON
我们可以通过重写解除,有时候网上其它解决方法说循环调用的问题,其实大部分比较复杂的对象报错看不出具体问题,建议用一下方式解决。
//将json转换成字符串
function json_stringify(jsonVar) {
var cache = [];
var str = JSON.stringify(jsonVar, function(key, value) {
if (typeof value === ‘object’ && value !== null) {
if (cache.indexOf(value) !== -1) {
// 移除
return;
}
// 收集所有的值
cache.push(value);
}
return value;
});
cache = null;
return str;
}
将字符串转为对象parse,用这种方式即使转为对象,像百度地图的point对象也不能被识别,建议对字符串单独处理,本地重新实例化对象再引用。否则程序有问题,找不到解决点