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

Javascript 将对象添加到JSON文件之前],javascript,json,node.js,Javascript,Json,Node.js,我可能遗漏了一些可笑的东西,但是当我使用NodeJs将对象添加到我的json文件时,它会将它(显然?)添加到文件末尾,然后再添加到] var file = './data/questions.json'; fs.appendFile(file, ', ' + JSON.stringify(req.body), function (err) { console.log(err); }); 结果是这样的: [ {'id':1, 'name':'Tom'} ], {'id':2, '

我可能遗漏了一些可笑的东西,但是当我使用
NodeJs
对象添加到我的
json
文件时,它会将它(显然?)添加到文件末尾,然后再添加到
]

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'}
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

如果文件中已包含数组,则需要:

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);
});
我在NodeJS方面不是很好。因此,我假设如下:

  • do\u something\u获取内容
    获取文件内容
  • replaceFile
    将其替换为向文件写入新内容的函数

  • 您需要解析JSON文件以添加到其中。试着这样做:

    [
    {'id':1, 'name':'Tom'}
    ], {'id':2, 'name':'Jerry'}
    
    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
    

    结果似乎对我有好处。你有完整的代码吗?你最好先解析JSON,修改对象,然后对它进行重新排序。它正是你要求它做的。您需要实际解析js,添加对象,然后再次将其字符串化并保存到文件中。@MarcoAlka根据结果判断
    req.body
    {id':2,'name':'Jerry'}
    @PraveenKumar我正在尝试,我会在一秒钟内更新。如果OP没有任何节点代码,我想你不擅长node.js也没关系。@Blubberguy22谢谢你,伙计<代码>:)
    @Greg你刚才复制粘贴了吗?我做了大部分的部分,除了我必须“做点什么”的地方。@Greg
    fs.replaceFile
    也是伪文件!请将其替换为实际函数…呃,不。
    JSON.parse(file)
    将尝试解析
    /data/questions.JSON
    ,而不是文件的内容。你需要先读一读。我猜OP也希望得到的JSON编码数据被写入一个文件。@jcaron好的一点,坏的一点,我没有注意到。我会修好的,谢谢。