【发布时间】:2021-12-19 23:11:02
【问题描述】:
我有一个使用加拉加斯委内瑞拉作为位置的天气 api 的 json,我想获取 daily_chance_of_rain 和 daily_will_it_rain:
"forecast": {
"forecastday": [
{
"day": {
"daily_will_it_rain": 1,
"daily_chance_of_rain": 97,
//The Json is longer, so I cropped it
我尝试这样获取它,因为这些值是 int:
int? will_it_rain;
int? chance_of_rain;
var searchResult = await http
.get(Uri.parse(searchApiUrl + "Caracas" + "&days=1&aqi=no&alerts=no"));
var result = json.decode(searchResult.body);
will_it_rain =
result["forecast"]["forecastday"]["day"]["daily_will_it_rain"];
chance_of_rain =
result["forecast"]["forecastday"]["day"]["daily_chance_of_rain"];
但我明白了:
Exception has occurred.
_TypeError (type 'String' is not a subtype of type 'int' of 'index')
为什么我得到那个错误是那些值不是字符串?
【问题讨论】:
-
这个错误表示你做了这个
someList['some string'],也就是说你把一个字符串传入了一个索引,在这种情况下,forecastday实际上是一个天的列表,所以你需要做类似result["forecast"]["forecastday"][0]["day"]["daily_will_it_rain"]; -