Javascript - 将对象附加到 JSON 文件

Jam*_*son 9 javascript json

我目前有一个对象:

var obj = {
        username: "James",
        surname: "Brandon",
        id: "[2]"
}
Run Code Online (Sandbox Code Playgroud)

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

[
  {    
    "username": "Andy",
    "surname": "Thompson",
    "id": [0],
  },
  {    
    "username": "Moe",
    "surname": "Brown",
    "id": [1]
  }
]
Run Code Online (Sandbox Code Playgroud)

你知道我怎样才能做到这一点吗?提前致谢。

PA.*_*PA. 8

这个答案假设您正在 Node.js 下工作。

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

  1. 读取和写入 .json 文件

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

    let users = JSON.parse(usersjson);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将对象附加到数组

    users.push(obj);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将数组转回 json 字符串

    usersjson = JSON.stringify(users);
    
    Run Code Online (Sandbox Code Playgroud)
  5. 保存 json 文件

    fs.writeFileSync("users.json",usersjson,"utf-8");
    
    Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 2

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

使用push()方法

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

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) );
Run Code Online (Sandbox Code Playgroud)

现在您已经有了更新的对象数组,您可以将其上传到服务器(检查此问题)或向用户提供下载(检查此其他问题)。

正如您已经被告知的,没有办法直接更新服务器中的客户端文件。也不可能将其直接保存到客户端文件系统中。