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。我没有在这个意义上使用操纵。