谷歌表格调用OpenWeather API访问["weather"]["main"]返回undefined求助
问题原因
OpenWeather API 返回的 weather 字段是数组类型,而非对象类型。即便是单地点查询仅返回1组天气状态数据,也会被包裹在长度为1的数组中,跳过数组下标直接访问子字段自然会返回 undefined。
你之前能成功拉取到最高、最低温度,是因为这两个字段存放在根路径下的 main 对象中,和 weather 数组下重名的 main 字段属于完全不同的层级,这也是很多开发者容易混淆写错路径的常见原因。
下面是OpenWeather标准返回的结构片段参考:
{ "weather": [ // 注意weather对应的值是方括号包裹的数组,你需要的字段在数组第0项内 { "main": "Clear", "description": "晴朗", "icon": "01d" } ], // 你之前成功取值的温湿度字段在根路径的main对象下,和上面的main字段重名不同层级 "main": { "temp": 28.7, "temp_min": 27.2, "temp_max": 29.8 } }
解决方法
- 如果你是通过自定义Google Apps Script拉取接口解析:把取值代码从
data["weather"]["main"]修改为data["weather"][0]["main"]即可 - 如果你是通过第三方ImportJSON插件直接在单元格写公式拉取:把取值路径从
/weather/main修改为/weather/0/main即可
内容的提问来源于stack exchange,提问作者Jove
相关产品推荐
相关产品推荐

