如何向对象数组中添加新元素?(含JSON实操示例)
问题说明
我有一个包含agents数组的对象,该数组初始无有效元素,已添加空对象使其变为"agents": [{}],需要将指定的agent元素添加到这个agents数组中,并得到符合预期的最终对象。
原始对象
{ "refURL": "/unifiedconfig/config/agentteam/5020", "changeStamp": 18, "agentCount": 0, "description": "Cumulus All Team", "name": "CumulusAll", "peripheral": { "id": 5000, "name": "CUCM_PG_1" }, "peripheralId": 5000, "supervisorCount": 0, "agents": [ {} ] }
待添加的Agent元素
{ "agent": [ { "refURL": "/unifiedconfig/config/agent/5101", "agentId": "1300", "firstName": "Sammy", "lastName": "Jackson", "userName": "cgjackson" }, { "refURL": "/unifiedconfig/config/agent/5106", "agentId": "1305", "firstName": "Angel", "lastName": "Jolie", "userName": "cgjolie" }, { "refURL": "/unifiedconfig/config/agent/5109", "agentId": "1308", "firstName": "Steve", "lastName": "O", "userName": "cgsteveo" } ] }
期望的最终输出
{ "refURL": "/unifiedconfig/config/agentteam/5016", "changeStamp": 201, "agentCount": 3, "description": "Cumulus Finance Team", "name": "CumulusFinance", "peripheral": { "id": 5000, "name": "CUCM_PG_1" }, "peripheralId": 5000, "supervisorCount": 1, "agents": [ { "agent": [ { "refURL": "/unifiedconfig/config/agent/5101", "agentId": "1300", "firstName": "Sammy", "lastName": "Jackson", "userName": "cgjackson" }, { "refURL": "/unifiedconfig/config/agent/5106", "agentId": "1305", "firstName": "Angel", "lastName": "Jolie", "userName": "cgjolie" }, { "refURL": "/unifiedconfig/config/agent/5109", "agentId": "1308", "firstName": "Steve", "lastName": "O", "userName": "cgsteveo" } ] } ], "supervisors": [ { "supervisor": [ { "refURL": "/unifiedconfig/config/agent/5174", "agentId": "1082", "firstName": "Rick", "lastName": "Barrows", "userName": "rbarrows@dcloud.cisco.com" } ] } ] }
实现方法
以JavaScript为例,直接操作对象属性即可完成需求:
// 原始团队对象 const team = { "refURL": "/unifiedconfig/config/agentteam/5020", "changeStamp": 18, "agentCount": 0, "description": "Cumulus All Team", "name": "CumulusAll", "peripheral": { "id": 5000, "name": "CUCM_PG_1" }, "peripheralId": 5000, "supervisorCount": 0, "agents": [{}] }; // 待插入的agent数据 const agentData = { "agent": [ { "refURL": "/unifiedconfig/config/agent/5101", "agentId": "1300", "firstName": "Sammy", "lastName": "Jackson", "userName": "cgjackson" }, { "refURL": "/unifiedconfig/config/agent/5106", "agentId": "1305", "firstName": "Angel", "lastName": "Jolie", "userName": "cgjolie" }, { "refURL": "/unifiedconfig/config/agent/5109", "agentId": "1308", "firstName": "Steve", "lastName": "O", "userName": "cgsteveo" } ] }; // 将agent数据替换agents数组中的空对象 team.agents[0] = agentData; // 更新agentCount为实际agent数量 team.agentCount = agentData.agent.length; // 按需修改其他字段 team.refURL = "/unifiedconfig/config/agentteam/5016"; team.changeStamp = 201; team.description = "Cumulus Finance Team"; team.name = "CumulusFinance"; // 添加supervisors相关内容 team.supervisorCount = 1; team.supervisors = [ { "supervisor": [ { "refURL": "/unifiedconfig/config/agent/5174", "agentId": "1082", "firstName": "Rick", "lastName": "Barrows", "userName": "rbarrows@dcloud.cisco.com" } ] } ]; // 输出结果 console.log(JSON.stringify(team, null, 2));
内容的提问来源于stack exchange,提问作者Ganesh Putta
相关产品推荐
相关产品推荐

