You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript为JSON中每个资源对象添加schemas与id属性

JavaScript 实现给Resources数组元素追加指定属性

你可以通过数组遍历的方式给每个资源对象追加固定属性,以下是可直接运行的实现方案:

完整实现代码

// 若你接收到的是JSON字符串,先通过 JSON.parse(响应字符串) 转为JS对象再处理
const rawResponse = {
    "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"
        }
    ]
};

// 抽离固定schemas配置,避免重复编码
const FIXED_SCHEMAS = [
    "urn:ietf:params:scim:schemas:core:2.0:User",
    "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
];

// 替换为你实际的id取值逻辑,示例id和预期输出对齐
const resourceIdMap = ["xyz", "abc"];

const processedResponse = {
    // 保留原始响应的其他顶层字段
    ...rawResponse,
    Resources: rawResponse.Resources.map((item, index) => ({
        schemas: FIXED_SCHEMAS,
        // 按业务实际来源给id赋值,比如id来自原对象的userId字段就写 item.userId
        id: resourceIdMap[index],
        // 保留原资源的所有原有属性
        ...item
    }))
};

// 若需要转回JSON字符串格式,可调用以下方法,第三个参数是格式化缩进空格数
// const finalResult = JSON.stringify(processedResponse, null, 4);

关键说明

  • 上述实现用map加对象展开运算符处理,不会修改原始响应数据,避免原始数据被意外污染;如果不需要保留原数据,也可以直接用forEach遍历原数组,直接给每个元素追加schemas和id属性,写法更直接。
  • 如果业务要求每个资源对象的schemas数组是独立引用,把schemas: FIXED_SCHEMAS改成schemas: [...FIXED_SCHEMAS]做一次浅拷贝即可。
  • id的赋值逻辑根据实际业务调整即可,示例里的id列表仅为对齐给出的预期输出。

内容的提问来源于stack exchange,提问作者unknown09

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 03:09:37