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

Google Sheets使用importJSON拉取OSRS价格API数据截断及ID关联问题咨询

1 解决ImportJSON字段筛选与数据截断问题

  • 首先填充筛选参数限制返回字段:在B2单元格输入/data/*/avgHighPrice,/data/*/avgLowPrice,仅拉取你需要的两个字段,避免无关数据占用返回配额导致截断。
  • 调整输出格式:将公式修改为=IMPORTJSON(B1,B2,"noHeaders,transpose"),即可直接输出你需要的、以物品ID为横向表头的格式。
  • 若仍存在截断问题,说明第三方ImportJSON插件的默认返回长度限制不足,建议直接使用自定义脚本拉取数据,稳定性更高。

2 优化物品映射函数并关联价格数据

你当前的naming函数存在冗余逻辑,且修改Object.prototype容易触发Google Apps Script的上下文冲突,建议替换为以下优化版本,同时新增合并数据的自定义函数一步输出最终结果:

2.1 优化后的完整脚本

// 拉取物品ID与名称映射
function getOsrsItemMapping(url) {
  const response = UrlFetchApp.fetch(url);
  const data = JSON.parse(response.getContentText());
  const result = [['ID', 'Name']];
  data.forEach(item => {
    result.push([item.id, item.name]);
  });
  return result;
}

// 直接拉取价格并关联名称,输出最终表格
function getOsrsPriceWithName(priceApiUrl, mappingApiUrl) {
  // 拉取1小时价格数据
  const priceRes = UrlFetchApp.fetch(priceApiUrl);
  const priceData = JSON.parse(priceRes.getContentText()).data;
  // 拉取物品映射数据
  const mappingRes = UrlFetchApp.fetch(mappingApiUrl);
  const mappingData = JSON.parse(mappingRes.getContentText());
  // 构造ID-名称映射字典,提升查找效率
  const idToName = {};
  mappingData.forEach(item => {
    idToName[item.id] = item.name;
  });
  // 组装结果表
  const output = [['ID', 'Name', 'avgHighPrice', 'avgLowPrice']];
  Object.keys(priceData).forEach(itemId => {
    const priceInfo = priceData[itemId];
    // 过滤无价格或无匹配名称的物品
    if (idToName[itemId] && priceInfo.avgHighPrice && priceInfo.avgLowPrice) {
      output.push([
        itemId,
        idToName[itemId],
        priceInfo.avgHighPrice,
        priceInfo.avgLowPrice
      ]);
    }
  });
  return output;
}

2.2 使用方法

直接在任意空白单元格输入公式:
=getOsrsPriceWithName("https://prices.runescape.wiki/api/v1/osrs/1h", "https://prices.runescape.wiki/api/v1/osrs/mapping")
即可自动输出你需要的、包含ID、物品名称、两个价格字段的完整表格,无需再分别调用两个接口手动匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:45:03