JavaScript - 如何动态添加到嵌套对象数组

JavaScript - How to dynamically add to a nested object array

我正在尝试制作一个可以根据我输入的数字创建按钮的聊天机器人。代码如下所示:

let messageData = {
    "attachment": {
        "type": "template",
        "payload": {
            "template_type": "button",
            "text": text[1],
            "buttons":[]
        }
    }
}

说 "buttons":[] 的部分是我要根据此格式添加按钮(在 [] 内)的地方:

{
   "type":"postback",
   "title":"button" + i //where i is the button number,
   "payload":"button" + i
}

我该怎么做?

对于您的示例,您可以这样做:

messageData.attachment.payload.buttons.push(obj) 

.访问对象的key,也可以这样messageData['attachment']

之间的区别
messageData.attachment

messageData['attachment']

是第二个可以取变量而不是字符串,例如

var use_key = 'attachment';
messageData[use_key];

将访问与上面的其他两个相同。

JSON只是JavaScript Object Notation的缩写。你让它和你的第二个例子完全一样:

{
   "type":"postback",
   "title":"button" + i //where i is the button number,
   "payload":"button" + i
}

您可以将它分配给一个变量以将其传递到推送中,或者完全按照原样传递。与字符串或数字没有太大区别。不要让所有额外信息吓到你。