我目前有一个对象:
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)
你知道我怎样才能做到这一点吗?提前致谢。
这个答案假设您正在 Node.js 下工作。
据我了解您的问题,您需要解决一些不同的编程问题。
读取和写入 .json 文件
const fs = require("fs");
let usersjson = fs.readFileSync("users.json","utf-8");
Run Code Online (Sandbox Code Playgroud)将 json 字符串转换为 javascript 数组
let users = JSON.parse(usersjson);
Run Code Online (Sandbox Code Playgroud)将对象附加到数组
users.push(obj);
Run Code Online (Sandbox Code Playgroud)将数组转回 json 字符串
usersjson = JSON.stringify(users);
Run Code Online (Sandbox Code Playgroud)保存 json 文件
fs.writeFileSync("users.json",usersjson,"utf-8");
Run Code Online (Sandbox Code Playgroud)如果您的代码在浏览器中运行并且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)
现在您已经有了更新的对象数组,您可以将其上传到服务器(检查此问题)或向用户提供下载(检查此其他问题)。
正如您已经被告知的,没有办法直接更新服务器中的客户端文件。也不可能将其直接保存到客户端文件系统中。