将数据添加到现有的json对象

时间:2015-10-05 03:07:01

标签: javascript json node.js

所以我想要实现的是创建一个 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文档,直接到我想要做的点,将不胜感激

1 个答案:

答案 0 :(得分:1)

使用[]访问对象上的动态密钥

json.users[username] = {a: 1, b: 2}

小心地命名你的变量,因为json你使用它的方式不是JSON。 JSON是一个字符串,而不是带键的对象。

请参阅以下演示以区分

var json = '{"users":{"test1":{},"test2":{}}}';
var obj  = JSON.parse(json);
var newuser = 'test3';
obj.users[newuser] = {};
console.log(JSON.stringify(obj));
//=> {"users":{"test1":{},"test2":{},"test3":{}}}