Javascript 向现有json对象添加数据
因此,我试图实现的是创建一个Javascript 向现有json对象添加数据,javascript,json,node.js,Javascript,Json,Node.js,因此,我试图实现的是创建一个json平面文件来存储用户信息,但我不知道如何添加新的空嵌套对象,然后保存json文件并重新加载它 在我的*json*文件中,我有以下内容 { "users" : { "test" : { }, "test1" : { } } } 我正在尝试添加尽可能多的新对象。比如说 { "users" : { "test" : { },
json
平面文件来存储用户信息,但我不知道如何添加新的空嵌套对象,然后保存json文件并重新加载它
在我的*json*
文件中,我有以下内容
{
"users" : {
"test" : {
},
"test1" : {
}
}
}
我正在尝试添加尽可能多的新对象。比如说
{
"users" : {
"test" : {
},
"test1" : {
},
"test2" : {
},
"test3" : {
}
}
}
我的服务器端Javascript
json.users.push = username;
fs.writeFile("./storage.json", JSON.stringify(json, null, 4) , 'utf-8');
delete require.cache[require.resolve('./storage.json')];
json = require("./storage.json");
使用此代码时,它不会写入文件,因此当完成请求时,我会使用相同的文件,当我使用console.log时,我的json对象也会这样结束
{
"users": {
"test": {},
"test1": {},
"push": "test2"
}
}
请不要推荐一些外部模块来解决这样简单的问题。另外,如果有人能给我提供一份深入的json文档,直接说明我要做的事情,我将不胜感激使用
[]
访问对象上的动态键
json.users[username] = {a: 1, b: 2}
请小心这样命名变量,因为json
使用它的方式不是json。JSON是一个字符串,而不是带有键的对象
有关区别,请参见下面的演示
var json='{“用户”:{“test1”:{},test2”:{};
var obj=JSON.parse(JSON);
var newuser='test3';
obj.users[newuser]={};
log(JSON.stringify(obj));
//=>{“用户”:{“test1”:{},“test2”:{},“test3”:{}}
没有JSON对象这样的东西。有对象,有JSON。这是蛋糕配方和蛋糕之间的区别。没有蛋糕-配方-蛋糕这样的东西。你认为json.users.push
有什么作用?直截了当!你真棒!你知道我在哪里可以找到关于使用JavaScript操作json的深入文档吗?你知道为什么我的fs.writefile不起作用吗?你从不直接操作json。始终var x=JSON.parse(yourJson)
,对x
执行操作,然后JSON.stringify(x)
重写JSON。我知道我所做的是非标准的,我必须小心自己,不要搞砸。看起来你正在尝试以同步方式使用fs.writeFile
,也许可以尝试fs.writeFileSync
。如果这没有帮助,你应该问一个新问题。不,我知道你使用了parse和stringify。我没有在这个意义上使用操纵。