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

使用jQuery访问Google Spreadsheet的JSON数据,无法提取urltorecord字段求助

解决Google Sheets JSON数据中提取urltorecord字段的问题

我明白你遇到的问题了——你用的public/basic类型的Google Sheets feed返回的content.$t是一段拼接的文本,不是结构化的对象,所以没法直接通过属性名提取urltorecord字段。下面给你两种可行的解决方案:

方案1:解析content.$t的文本内容

public/basic feed里的content.$t格式是每个字段一行(比如urltorecord: https://example.com/record1),我们可以把这段文本分割成键值对,转换成对象后再提取字段:

var $url = 'https://spreadsheets.google.com/feeds/list/1eyzMLOARApWp9phgQkjLChYdVNaipuPJmdbg84MKXLg/od6/public/basic?alt=json';
$.getJSON($url, function(data) {
  // 遍历每个表格条目
  data.feed.entry.forEach(function(entry) {
    var contentStr = entry.content.$t;
    // 按换行分割成单个键值对
    var keyValueArr = contentStr.split('\n');
    var itemData = {};
    
    // 逐个处理键值对
    keyValueArr.forEach(function(pair) {
      var splitParts = pair.split(': ');
      if (splitParts.length === 2) {
        var fieldName = splitParts[0].trim();
        var fieldValue = splitParts[1].trim();
        itemData[fieldName] = fieldValue;
      }
    });
    
    // 现在可以直接访问urltorecord字段了
    console.log(itemData.urltorecord);
  });
});

方案2:改用更结构化的public/values feed

推荐用这种方法,因为public/values feed返回的JSON已经把每个字段结构化了,不需要手动解析文本。只需要把URL里的basic改成values,然后通过gsx$字段名.$t来访问:

// 替换URL中的basic为values
var $url = 'https://spreadsheets.google.com/feeds/list/1eyzMLOARApWp9phgQkjLChYdVNaipuPJmdbg84MKXLg/od6/public/values?alt=json';
$.getJSON($url, function(data) {
  data.feed.entry.forEach(function(entry) {
    // 注意:字段名会被转为小写,空格会替换成下划线
    var urltorecordValue = entry.gsx$urltorecord.$t;
    console.log(urltorecordValue);
  });
});

小提示:如果你的表格列名有空格(比如"URL to Record"),对应的属性名会变成gsx$urltorecord(全小写,空格转下划线)。

第二种方案更稳定,能避免文本分割时可能出现的异常(比如字段值里包含冒号的情况),优先推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:37:12