Javascript 是否有一种方法可以使用Node更新外部JSON文件中特定JSON键的值,而不必解析和字符串化整个文件?
我知道Javascript 是否有一种方法可以使用Node更新外部JSON文件中特定JSON键的值,而不必解析和字符串化整个文件?,javascript,node.js,json,Javascript,Node.js,Json,我知道JSON.parse()和JSON.stringify()。我知道我可以使用Node的fs将“新”JSON数据写回文件 但是,如果我只需要为一个特定的键替换1个值,那么我觉得每次都不需要parse()整个JSON文件 总之,我的JS将创造一个新的价值。然后,该值应该写回JSON文件,但是,我希望能够更新内部的1个特定键的值,以parse,然后stringify每次仅为1个值对整个JSON文件进行字符串化,使用带有正则表达式的sed进行替换显然已经足够了。 尽管您仍然可以使用NodeJS和r
JSON.parse()
和JSON.stringify()
。我知道我可以使用Node的fs
将“新”JSON数据写回文件
但是,如果我只需要为一个特定的键替换1个值,那么我觉得每次都不需要parse()
整个JSON文件
总之,我的JS将创造一个新的价值。然后,该值应该写回JSON文件,但是,我希望能够更新内部的1个特定键的值,以
parse
,然后stringify
每次仅为1个值对整个JSON文件进行字符串化,使用带有正则表达式的sed
进行替换显然已经足够了。
尽管您仍然可以使用NodeJS和regex,使用String.prototype.replace
使用sed
sed -i 's/\"key\":.*/\"key\": '${newValue}'/g' "/path/to/my.json"
使用NodeJS
let file = fs.readFileSync('./a.json').toString();
file = file.replace(/\"key\":.*/g, '"key": "newValue"');
fs.writeFileSync('./a.json', file);
如果文件没有显著的大小,就不必选择这种类型的解决方案,只要
parse
和stringify
返回到文件,除非文件非常大,否则解析和重新stringify它将比其他任何方法更简单、更安全。如果您确实有非常大的文件,并且这会成为一个性能问题,那么您首先需要考虑将数据存储在不同的文件中,其次可能需要查看stream parsers.Yikes。根据上面的评论,这似乎比“解析和字符串化”更复杂。@CodeFinity是的,我同意,但这正是作者想要的哈哈!