在将对象添加到JSON文件之前]

时间:2016-01-15 14:08:42

标签: javascript json node.js

我可能错过了一些荒谬的东西,但当我用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'}

2 个答案:

答案 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中不是很好。所以我假设以下内容:

  1. do_something_to_get_contents获取文件内容。
  2. 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