繁体   English   中英

使用 javascript 向现有 json 有效负载添加属性

[英]Adding attributes to existing json payload using javascript

我收到如下 json 响应。 我想添加“**

架构”:[“urn:ietf:参数:scim:架构:核心:2.0:用户”,“urn:ietf:参数:scim:架构:扩展:企业:2.0:用户”],“id”:“xyz” ,

** 对每个资源如何使用 javascript 执行此操作。 任何人都可以帮忙。

{
    "Resources": [
        {
            "emails": {
                "type": "bobsmith01@company.com",
                "value": "Personal"
            },
            "name": {
                "familyName": "Bob-update3",
                "givenName": "Smith"
            },
            "detail": "SUCCESS",
            "userName": "bobsmith01@company.com",
            "status": "200"
        },
        {
            "emails": {
                "type": "samgomes@company.com",
                "value": "Personal"
            },
            "name": {
                "familyName": "gomes",
                "givenName": "sam"
            },
            "detail": "SUCCESS",
            "userName": "samgomes@company.com",
            "status": "200"
        }
    ]
}

所需的输出如下。

{
    "Resources": [
        {
        "schemas":[
            "urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
         ],
         "id":"xyz",
            "emails": {
                "type": "bobsmith01@company.com",
                "value": "Personal"
            },
            "name": {
                "familyName": "Bob-update3",
                "givenName": "Smith"
            },
            "detail": "SUCCESS",
            "userName": "bobsmith01@company.com",
            "status": "200"
        }
        {
        "schemas":[
            "urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
         ],
         "id":"abc",
            "emails": {
                "type": "samgomes@company.com",
                "value": "Personal"
            },
            "name": {
                "familyName": "gomes",
                "givenName": "sam"
            },
            "detail": "SUCCESS",
            "userName": "samgomes@company.com",
            "status": "200"
        }
    ]
}

您可以使用 ES6 JS 扩展运算符 (...) 和 Array.map 来实现:

 const orgObject = { "Resources": [{ "emails": { "type": "bobsmith01@company.com", "value": "Personal" }, "name": { "familyName": "Bob-update3", "givenName": "Smith" }, "detail": "SUCCESS", "userName": "bobsmith01@company.com", "status": "200" }, { "emails": { "type": "samgomes@company.com", "value": "Personal" }, "name": { "familyName": "gomes", "givenName": "sam" }, "detail": "SUCCESS", "userName": "samgomes@company.com", "status": "200" } ] } const copiedObject = {...orgObject}; // Copy object to avoid mutation preferably use lodash.cloneDeep // loop through the object.Resources using map copiedObject.Resources = copiedObject.Resources.map(res => { return { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ], "id": "xyz", ...res // Use spread operator to copy the existing object properties from Resources } }); console.log(copiedObject)
 .as-console-wrapper{ top:0; max-height:100% !important; }

暂无
暂无

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

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