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

如何用Google Apps Script提取JSON数组中全部列表数据?

解决Google Apps Script中提取JSON数组所有元素字段的问题

你当前的代码仅获取了isLabeledBy数组的第一个元素,要提取数组中所有元素的label值,需要遍历整个isLabeledBy数组。以下是修改后的完整代码:

var lesparams = params + '&limit=' + limit + '&next_page=' + next_page + '&ts=' + Math.floor((Math.random() * 10000000) + 1);
var url = 'https://apis.alkemics.com/public/v1/products?' + lesparams;
var content = UrlFetchApp.fetch(url, options);
if (content.getResponseCode() == 200) {
  var retour = JSON.parse(content.getContentText());
  next_page = retour.next_page;
  var data = retour.data;

  for (i = 0; i < data.length; i++) {
    var produit = data[i];
    // 提取isLabeledBy数组中所有元素的label值
    var labels = [];
    // 先判断isLabeledBy是否存在且为数组,避免空值报错
    if (produit.isLabeledBy && Array.isArray(produit.isLabeledBy)) {
      labels = produit.isLabeledBy.map(item => {
        // 每个item判断isConceptualizedBy是否存在,再取label
        return item.isConceptualizedBy ? item.isConceptualizedBy.label : '';
      });
    }
    // 将labels数组转为逗号分隔的字符串(如果需要保留数组结构,直接用labels即可)
    var line = [labels.join(', ')];

    produits.push(line);
    total = total + 1;
  }
} else {
  Logger.log('Error in GET /contents/{contentid}')
}

关键修改说明:

  • 新增produit.isLabeledBy的存在性和数组类型判断,避免接口返回空值时脚本报错
  • 使用map()方法遍历isLabeledBy数组,批量提取每个元素下的isConceptualizedBy.label值
  • 用join(', ')将多个label合并为字符串,适合直接写入Google Sheets单元格;若需保留数组结构,直接将labels放入line数组即可
  • 对isConceptualizedBy做空值判断,防止因字段缺失导致的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:27:25