如何解决JSON stringify 在整个 json 对象周围添加引号并转义字符
我在项目中的多个点使用 JSON.stringify()
,但行为却出乎意料的变化。
我将值存储在 events.json 文件中,然后写回以更新状态。当我从 users
对象数组中删除一个元素并写回时,在写回文件后,我的文件中会留下以下内容:
"{\"users\":[]}"
这是在拼接和回写之前的样子:
{"users":[{"sender":"xxxx","reciever":"xxxxx","amount":2}]}
在项目的不同部分,JSON.stringify
没有用引号将整个对象括起来,也没有转义引号(包括之前写入我的 events.json
文件,如上所示)。生成的文件生成不正确的 JSON 数据,当我在下次读取时尝试 JSON.parse()
时不再有用。
知道我在做什么吗?
我写回文件的那一行是:
fs.writeFileSync(path,JSON.stringify(parentObject));
并且父对象在写入之前格式良好。
解决方法
我看不到任何意外行为。
const fs = require('fs');
fs.writeFileSync('./event.json',JSON.stringify({"users":[{"sender":"xxxx","reciever":"xxxxx","amount":2}]}));
const obj = require('./event.json')
obj.users.pop(); //some operation
fs.writeFileSync('event.json',JSON.stringify(obj));
//This write {"users":[]} in event.json file
看起来您在对象上调用了两次 JSON.stringify()。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。