繁体   English   中英

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

[英]Add data to existing json object

所以我要实现的目的是创建一个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}

请小心地将变量命名为tho,因为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":{}}} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM