【问题标题】:Write JSON with Node.js使用 Node.js 编写 JSON
【发布时间】:2017-10-17 10:10:33
【问题描述】:

我正在尝试将名称推送到 json 文件中。我正在尝试做类似的事情:

socket.on('create json', function(data){
    var data = JSON.stringify(Data, null, 2);
    fs.writeFile('participants.json', data)
    console.log(data);
});

这只是输出我发送的数据并导致:

{
  "type": "Buffer",
  "data": [34,69,120,97,109,112,108,101,32,110,97,109,101, 34 ]
}

当我编写文件时,它会删除所有内容并将其放入。 我正在寻找一种写法:

{
"names":["name1", "name2", "name3"]
}

关于如何修复和编写此问题的任何想法?

非常感谢您的帮助!

【问题讨论】:

  • 我还是看不懂你的问题,读(5遍)再读5遍
  • 这只是一个坏例子还是你真的有data作为参数,data作为变量和Data
  • 不确定,可能是你想在现有文件中追加数据,以追加模式打开文件,参考stackoverflow.com/questions/33418777/…
  • 我只是在寻求一种方法来编写一个 json 文件而不删除整个文件,这基本上都是

标签: javascript json node.js socket.io


【解决方案1】:

您必须再次读取文件,解析 JSON,将新结果附加到数组,将其转换回字符串并再次保存。

var fs = require('fs')

fs.readFile('participants.json', function (err, data) {
    var json = JSON.parse(data);
    json.name = ["name1", "name2", "name3"];
    fs.writeFile("results.json", JSON.stringify(json))
})

【讨论】:

  • 谢谢兄弟这对我有用!现在我将弄清楚如何从那里的输入字段中获取名称!非常感谢!
  • 你能帮我把值放入数组吗?我从输入字段中获取值。对不起,我是 JS 新手 :)
猜你喜欢
  • 2012-03-18
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 2014-04-15
  • 2012-01-13
  • 1970-01-01
相关资源
最近更新 更多