我可能错过了一些荒谬的东西,但当我用object
向我的json
文件添加NodeJs
时,它会在文件的末尾添加它(显然是?)在]
var file = './data/questions.json';
fs.appendFile(file, ', ' + JSON.stringify(req.body), function (err) {
console.log(err);
});
结果是这样的:
[
{'id':1, 'name':'Tom'}
], {'id':2, 'name':'Jerry'}
答案 0 :(得分:6)
如果文件中已经有数组,那么你需要的是:
var file = './data/questions.json';
// get the contents of the file
var fileContents = do_something_to_get_contents;
// convert to js object
fileContents = JSON.parse(fileContents);
// push the array
fileContents = fileContents.push(req.body);
// update the file contents by stringify
fs.replaceFile(file, JSON.stringify(fileContents), function (err) {
console.log(err);
});
我在Node JS中不是很好。所以我假设以下内容:
do_something_to_get_contents
获取文件内容。replaceFile
将此替换为将新内容写入文件的函数。答案 1 :(得分:2)
您需要解析JSON文件以添加到它。尝试这样的事情:
var file = './data/questions.json';
var fileData = get_data_from_file
var jData = JSON.parse(file);
jData.push({'id':2, 'name':'Jerry'});
var newFileData = JSON.stringify(jData);
//put the data back into the file