Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用大括号将元素推送到JSON数组_Javascript_Arrays_Json - Fatal编程技术网

Javascript 使用大括号将元素推送到JSON数组

Javascript 使用大括号将元素推送到JSON数组,javascript,arrays,json,Javascript,Arrays,Json,我很难将元素推送到位于外部位置的JSON文件中;以下是我试图实现的一个背景故事: 我正在编程一个私有的Discord机器人,目前正在处理它的消息系统部分。整个想法是,如果用户没有在服务器上获得完全授权,那么他们的消息就会被删除;该用户的消息和用户ID将登录到JSON文件中。问题是,如果用户ID被手动添加到数组中,我只能记录消息(使用push功能,我可以添加消息)。但是,如果我尝试push将用户ID推送到文件数组中,它的行为就好像不存在用于此操作的push函数一样;我认为JSON也是嵌套的。如果能

我很难将
元素推送到位于外部位置的JSON文件中;以下是我试图实现的一个背景故事:

我正在编程一个私有的Discord机器人,目前正在处理它的消息系统部分。整个想法是,如果用户没有在服务器上获得完全授权,那么他们的消息就会被删除;该用户的消息和用户ID将登录到JSON文件中。问题是,如果用户ID被手动添加到数组中,我只能记录消息(使用
push
功能,我可以添加消息)。但是,如果我尝试
push
将用户ID推送到文件数组中,它的行为就好像不存在用于此操作的
push
函数一样;我认为JSON也是嵌套的。如果能得到任何帮助,我将不胜感激,谢谢

JSON

{"users":[{}]}
我想把UserID放在括号内的大括号内

编码到推送到JSON

function removeMessage(content, authorid) {
    if (!messagedata.users[0][authorid]) {
        messagedata.users[0].push(authorid);
    }
}
我收到的最新消息:

TypeError:messagedata.users[0]。推送不是函数

预期产出

{"users":[{"287423028147781654":["Hi"]}]}

数值是UserID,而“Hi”显然是消息

用户[0]
是一个对象,而不是数组(因此没有
推送方法)。看起来您确实想向对象添加一个键,请尝试以下操作:

messagedata.users[0][authorid] = ["Hi"];

我很不明白你想做什么。您正在尝试将
推送到文件中吗?显示一个清晰的预期输出要更改JSON,您必须将其解析为一个对象,修改该对象,然后将其字符串化回JSON(前提是您希望将介质保留为JSON)。我已经添加了一个预期的输出,并更改了关于JSON的术语。实际输出是什么?这正是我想要的!非常感谢。