最近遇到了JSON.stringify 序列化对象后,数据丢失问题,之前用这个函数一直没出过问题,这次出问题了,而且卡了很久,所以记录下
情景如下:
var a = []; a.push(42); a.foo = 'bar'; console.log(a) console.log(JSON.stringify(a));
会发现a 对象明明有个 43,还有个 foo对象,但是序列化之后只剩下42
原因是a被定义为数组,当js序列化它的时候,采用遍历数组的方式去序列化,导致foo这个对象没有被识别出来
参考:https://stackoverflow.com/questions/27955104/json-stringify-removing-data-from-object