想实现追加数据写入文件,使用添加对象的方法无效

list=[{“a”:1,
“b”:2,
“c”:[“x”:1,“y”:1]}]类似这样的数据类型,用writestringtofile写入文件。提前提出合并的话使用push的话会提示push未定义,不知道该怎么下手

似乎对js的数据格式理解还不深入。。

你存的时候是存的[{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] 还是 list=[{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] ?
如果是 [{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] 取出来后JSON.parse()一下,
如果是 list=[{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] 有几个处理方式,我觉得比较简单的就是改成 { “list”:[{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] } 然后取出来再 JSON.parse()一下
还有,提示push没有,那说明对象不是数组,你可以打印一下,看看你的对象对不对

确实理解的非常浅显。。。我存档存的是 [{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] ,因为是不停添加新对象进去。然后存档就会变成 [{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] 这种样子,然后 之前是这么写的this.picdata=this.loadlist.push(JSON.stringify(this.picdata));
loadlist就是[{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] ,然后picdata是 [{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}],所以push一直提示错误。我仔细理解一下你的说法看看。。有点转不过弯来

有一点,修改数据,在js层就可以了,你存的方式不对
取出来转成js对象后,就按js对象添加数据,然后存的时候,再JSON.stringify()一下

还有,你看一下你打印的数据(已经不是正常的json了)
[{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}{“a”:1, “b”:2, “c”:[“x”:1,“y”:1]}] ,这里少了好几个 ‘,’ 逗号,如果你不在js层修改数据,那这个逗号你就要手动加上



这样写还是会出现这个错误。。先将两个数据都用parse转化成js对象了,然后使用push就这样,还是我哪里写的还不对吗?逗号的问题是我实在没有注意到的,手动添加是指在json表里手动添加吗,如果在js层改应当如何修改呢

啊我检查了一下什么都不修改的情况下生成的json里每个对象之间是有逗号的,这个就不是问题了,问题还是在怎么添加不会直接替换。。

你要不把相关代码放出来。。。

因为我是一点点在改功能的,有些东西就注释掉,或者只写了一点实现不了那个样子,不知道方不方便看emmm可以加你的联系方式吗

查看一下私信~