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

App Script从API返回数组取值报Cannot read 'map' of undefined如何解决

问题原因

  • JSON取值路径错误:API返回结构中data字段为数组类型,数组的第一个元素才是包含first字段的对象。直接调用json.data.first时,数组本身不存在first属性,得到的结果是undefined,对undefined调用map方法就会触发对应报错。
  • 返回值解析逻辑错误:UrlFetchApp.fetch()返回的是HTTPResponse实例,不能直接传入JSON.parse解析,需要先调用getContentText()方法获取接口返回的JSON字符串,才能正常完成解析。

注意:你给出的示例JSON是简化的结构表示,实际接口返回的标准JSON应为键用双引号包裹的格式,不影响后续代码逻辑。

修复方案

调整解析逻辑和取值路径即可,修改后的完整代码如下:

var request = UrlFetchApp.fetch(url);
// 先获取接口返回的文本内容再解析JSON
var json = JSON.parse(request.getContentText());
// 先取data数组的第一个元素,再读取first字段调用map
const value = json.data[0].first.map(obj => [obj[0]]);

如果实际场景中data数组包含多个元素,需要批量提取所有元素的first字段处理,可以用嵌套遍历实现:

// 平铺所有first数组的处理结果
const value = json.data.flatMap(item => item.first.map(obj => [obj[0]]));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:48:01