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

Dart解析天气API JSON时出现String不是int类型index子类型错误

错误原因

报错和你最终要提取的两个int类型字段无关,问题出在JSON节点的访问路径上:
从你提供的JSON结构可以看到forecast下的forecastday是数组类型(由[]包裹),Dart中访问数组元素必须使用int类型的下标,你的代码直接用字符串"day"作为数组的索引,因此触发了type 'String' is not a subtype of type 'int' of 'index'的类型错误。

修复代码

你请求参数指定了days=1,只需要取数组的第一个元素(下标为0)即可,修改后的字段提取逻辑如下:

will_it_rain = result["forecast"]["forecastday"][0]["day"]["daily_will_it_rain"] as int?;
chance_of_rain = result["forecast"]["forecastday"][0]["day"]["daily_chance_of_rain"] as int?;

建议添加显式的as int?类型转换,避免Dart动态类型推断带来的潜在类型问题。

内容的提问来源于stack exchange,提问作者Raúl Peñate

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:24:07