无法从WorldCoin Index API仅提取价格的技术问询
解决WorldCoin Index API获取价格的问题
你遇到的核心问题是没搞清楚API返回的JSON结构——Markets是一个数组,不是单个对象,所以直接用data.Markets.Price肯定拿不到值。我帮你调整了代码,同时加了一些容错处理:
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); // 注意把URL里的&改成普通的&,虽然有些环境能自动解析,但规范写法更稳妥 var response = UrlFetchApp.fetch("https://www.worldcoinindex.com/apiservice/ticker?key=h3mWeJn5YvaCFGIVqGGXz4fuKM9EaA&label=sumobtc&fiat=btc"); var json = response.getContentText(); var data = JSON.parse(json); // 先判断数组是否存在且有数据,避免空数组报错 if (data.Markets && data.Markets.length > 0) { // 你的请求只指定了一个label,所以取数组第一个元素的Price属性 var targetPrice = data.Markets[0].Price; sheet.getRange(2,10).setValue(targetPrice); Logger.log("成功获取价格:" + targetPrice); } else { Logger.log("未查询到对应市场数据"); sheet.getRange(2,10).setValue("无数据"); } }
额外调试小技巧
如果以后再遇到类似的API结构问题,你可以先把完整的返回数据格式化打印出来,这样能直观看到结构:
Logger.log(JSON.stringify(data, null, 2));
运行后去查看日志,就能清楚看到Markets是数组类型,每个元素里才包含Price、Name这些字段。
内容的提问来源于stack exchange,提问作者Raghav Reggie Jerath




