首页 > 解决方案 > 将 javascript 对象附加到 json 文件

问题描述

我正在返回一个 javascript 对象,并尝试使用fs.appendFile. 当我在json formatter website测试文件的输出时,我得到了错误Multiple JSON root elements。有人可以告诉我我在这里做错了什么。

var data = {
  userProfile: {
    name: "Eric"
  },
  purchases: [
    {
      title: "book name"
    },
    {
      title: "book name two"
    }
  ]
};

fs.appendFile("data.json", JSON.stringify(data, null, 2), function(err) {
  if (err) {
    console.log("There was an error writing the backup json file.", err);
  }
  console.log("The backup json file has been written.");
});

标签: javascriptnode.js

解决方案


您需要打开文件,解析 JSON,将新数据附加到旧数据,将其转换回字符串并再次保存。

var fs = require('fs')

var newData = {
  userProfile: {
    name: "Eric"
  },
  purchases: [
    {
      title: "book name"
    },
    {
      title: "book name two"
    }
  ]
};

fs.readFile('data.json', function (err, data) {
    var json = JSON.parse(data)
    const newJSON = Object.assign(json, newData)
    fs.writeFile("data.json", JSON.stringify(newJSON))
})

推荐阅读