如何将项目附加到文件中存储的 JSON?

How to append an item to a JSON stored in a file?

我正在尝试将 JSON 对象写入具有 FS 的数据库,但它没有按预期工作。我想要做的是在其中写入 JSON 数据:[] 示例:

[
{"name":"jhon"},
{"name":"jhonathan"}
]

代码如下:

谢谢。

您提供的评论没有多大意义,因为您在post和评论中提供的JSON数据完全不同。但我明白了它的要点。我猜你有一个包含数组的 JSON 文件,你想将新项目推送到它。让我们这样做。

事实是,当您调用 fs.appendFile 时,您只是在写入文件末尾。这样做没有遵循 JSON 格式。

您需要这样做:

  1. 读取文件内容。
  2. 将 JSON 文本解析为对象。
  3. 更新内存中的对象。
  4. 将 JSON 格式的对象写回文件系统。

为简单起见,我将调用同步方法,但您应该能够很容易地将其转换为异步方法。

const path = __dirname + 'db.json'

// Reading items from the file system
const jsonData = fs.readFileSync(path)
const items = JSON.parse(jsonData)

// Add new item to the item list
items.push(newItem)

// Writing back to the file system
const newJsonString = JSON.stringify(items)
fs.writeFileSync(path, newJsonString)