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

在Google Scripts中解析JSON遇阻,无法访问对象内的值

嘿,我来帮你搞定这个JSON解析的问题!看起来你已经拿到了正确的JSON字符串,但可能是在解析后的访问方式上出了岔子,我来一步步给你捋清楚。

首先,先确认你的JSON格式是有效的——你给出的这段JSON除了monthly数组里的空格([ ])有点不规范之外,整体是符合JSON语法的,不过JSON.parse()其实也能处理这种带空格的情况,当然改成[]会更标准。

接下来,问题大概率出在解析后访问属性的方式上。你要注意,keywords是一个数组,不是单个对象,所以不能直接用parsedData.keywords.kw这种写法,得先通过索引取数组里的元素,再访问它的属性。

给你写一段完整的可运行的Google Apps Script代码示例:

function parseKeywordJSON() {
  // 规范后的JSON字符串(去掉了monthly里的空格)
  var response = '{"keywords":[{"c":0.015165274822976534,"monthly":[],"kw":"handstand","n":60500,"sb":0.3}],"not_found":[]}';
  
  try {
    // 解析JSON字符串为JavaScript对象
    var parsedData = JSON.parse(response);
    
    // 访问keywords数组第一个元素的kw值
    var targetKeyword = parsedData.keywords[0].kw;
    Logger.log("关键词:" + targetKeyword); // 输出 "关键词:handstand"
    
    // 访问搜索量n的值
    var searchVolume = parsedData.keywords[0].n;
    Logger.log("月搜索量:" + searchVolume); // 输出 "月搜索量:60500"
    
    // 查看整个解析后的对象结构,方便调试
    Logger.log("解析后的完整数据:" + JSON.stringify(parsedData, null, 2));
  } catch (e) {
    Logger.log("解析出错:" + e.message);
  }
}

你可以把这段代码复制到你的Google Apps Script编辑器里运行,然后查看执行日志(点击编辑器顶部的「查看」→「日志」),就能看到正确的输出了。

可能你之前踩的坑就是没意识到keywords是数组,直接去访问它的属性,导致拿不到值。另外,用try-catch包裹解析逻辑可以帮你快速定位是否有JSON格式错误的问题。如果还是有问题,你可以把Logger.log(JSON.stringify(parsedData, null, 2))的输出贴出来,这样能更清楚地看到解析后的对象结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:30:52