首页 > 解决方案 > 将 JSON 添加到空数组问题

问题描述

我有一个顶级 JSON 结构如下:

{
    "video": [],
    "messages": [],
    "notifications": []
}

我有一个数据库输出(在变量“结果”中),如下我想推入“视频”数组:

[
    {
        "_id": "5f98ab906439155cfc6f9afb",
        "status": "NOT_STARTED",
        "date": "2020-10-27T23:21:52.683Z",
        "callInvitees": [
            {
                "username": "user1"
            },
            {
                "username": "user2"
            }
        ]
    },
    {
        "_id": "5f98aba0789e163e0c78908f",
        "status": "NOT_STARTED",
        "date": "2020-10-27T23:22:08.048Z",
        "callInvitees": [
            {
                "username": "user1"
            }
        ]
    }
]

我的代码是:

let dashboardJSON = { "video": [], "messages": [], "notifications": [] };
dashboardJSON.video.push(result)

它有效,但我最终得到了太多的数组(我认为) - 它看起来如下:

{
    "video": [
        [
            {
                "_id": "5f98ab906439155cfc6f9afb",
                "status": "NOT_STARTED",
                "date": "2020-10-27T23:21:52.683Z",
                "callInvitees": [
                    {
                        "username": "user1"
                    },
                    {
                        "username": "user2"
                    }
                ]
            },
            {
                "_id": "5f98aba0789e163e0c78908f",
                "status": "NOT_STARTED",
                "date": "2020-10-27T23:22:08.048Z",
                "callInvitees": [
                    {
                        "username": "user1"
                    }
                ]
            }
        ]
    ],
    "messages": [],
    "notifications": []
}

我想要"video": [ { ... }, { ... } ]而我有"video": [[ { ... }, { ... } ]]

我该如何解决这个问题?

标签: javascriptarraysjson

解决方案


您可以按如下方式使用扩展运算符:

let result = [
    {
        "_id": "5f98ab906439155cfc6f9afb",
        "status": "NOT_STARTED",
        "date": "2020-10-27T23:21:52.683Z",
        "callInvitees": [
            {
                "username": "user1"
            },
            {
                "username": "user2"
            }
        ]
    },
    {
        "_id": "5f98aba0789e163e0c78908f",
        "status": "NOT_STARTED",
        "date": "2020-10-27T23:22:08.048Z",
        "callInvitees": [
            {
                "username": "user1"
            }
        ]
    }
]

let dashboardJSON = { "video": [], "messages": [], "notifications": [] };

dashboardJSON.video.push(...result)

console.log(dashboardJSON);


推荐阅读