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

如何在Google Script中循环遍历JSON提取resource_id生成目标列表

实现代码

基础循环版本(易理解,兼容所有Google Script运行环境)

function extractResourceIds() {
  // 你的原始JSON数据
  var dataStringify = 
    {
    "items": [
        {
            "events": [
                {
                    "parameters": [
                        {
                            "name": "resource_id",
                            "value": "1"
                        }
                    ]
                }
            ]
        },
        {
            "events": [
                {
                    "parameters": [
                        {
                            "name": "resource_id",
                            "value": "2"
                        }
                    ]
                }
            ]
        },
        {
            "events": [
                {
                    "parameters": [
                        {
                            "name": "resource_id",
                            "value": "3"
                        }
                    ]
                }
            ]
        }
    ]
  };

  var resultList = [];
  // 逐层遍历嵌套数组
  for (let i = 0; i < dataStringify.items.length; i++) {
    const currentItem = dataStringify.items[i];
    for (let j = 0; j < currentItem.events.length; j++) {
      const currentEvent = currentItem.events[j];
      for (let k = 0; k < currentEvent.parameters.length; k++) {
        const currentParam = currentEvent.parameters[k];
        if (currentParam.name === "resource_id") {
          // 如需数字类型可改为 resultList.push(Number(currentParam.value))
          resultList.push(currentParam.value);
        }
      }
    }
  }

  Logger.log(resultList); // 输出 ["1","2","3"],转数字后为 [1,2,3]
  return resultList;
}

简洁数组方法版本

function extractResourceIdsShort() {
  var dataStringify = /* 此处放入你的JSON数据 */;

  const resultList = dataStringify.items
    .flatMap(item => item.events)
    .flatMap(event => event.parameters)
    .filter(param => param.name === "resource_id")
    // 如需数字类型改为 .map(param => Number(param.value))
    .map(param => param.value);
  
  Logger.log(resultList);
  return resultList;
}

说明

  • 两种写法都兼容参数数组存在多值、空值的场景,不会出现索引越界错误
  • 如需输出数字类型的列表,只需按照代码注释修改对应行即可,最终返回结果为[1,2,3]

内容的提问来源于stack exchange,提问作者W.Lyman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:48:05