Javascript-将对象追加到JSON文件

时间:2018-10-29 22:23:09

标签: javascript json

我当前有一个对象:

var obj = {
        username: "James",
        surname: "Brandon",
        id: "[2]"
}

,我想将其附加到“ users.json”:

[
  {    
    "username": "Andy",
    "surname": "Thompson",
    "id": [0],
  },
  {    
    "username": "Moe",
    "surname": "Brown",
    "id": [1]
  }
]

您知道我可能如何做到吗? 预先感谢。

2 个答案:

答案 0 :(得分:1)

如果您的代码正在浏览器中运行,并且 users.json 是输出文件,我想您已经可以访问其内容。

使用push() method

另外,请注意对象中缺少的逗号。

var obj = {
        username: "James",
        surname: "Brandon",
        id: "[2]"
};

var users = [
  {    
    "username": "Andy",
    "surname": "Thompson",
    "id": [0]
  },
  {    
    "username": "Moe",
    "surname": "Brown",
    "id": [1]
  }
];

users.push(obj);
console.log( JSON.stringify(users) );

现在您有了更新的对象数组,可以将其上载到服务器(选中this question)或向用户提供下载(选中this other question)。

您已经被告知,无法直接在服务器中更新客户端文件。也无法将其直接保存到客户端文件系统中。

答案 1 :(得分:1)

此答案是假设您在Node.js下工作。

据我了解您的问题,您需要解决一些不同的编程问题。

  1. 读取和写入.json文件

    const fs = require("fs");
    let usersjson = fs.readFileSync("users.json","utf-8");
    
  2. 将json字符串转换为javascript数组

    let users = JSON.parse(usersjson);
    
  3. 将对象附加到数组

    users.push(obj);
    
  4. 将数组转换回json字符串

    usersjson = JSON.stringify(users);
    
  5. 保存json文件

    fs.writeFileSync("users.json",usersjson,"utf-8");