我從使用委內瑞拉加拉加斯作為位置的天氣 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')
為什么我會得到那個錯誤是那些值是 int 而不是字串?
uj5u.com熱心網友回復:
您需要在回傳結果時定義索引,如下所示:
result["forecast"]["forecastday"][0]["day"]["daily_will_it_rain"];
或者你可以像這個例子一樣使用迭代。
uj5u.com熱心網友回復:
這個錯誤意味著你做了這個someList['some string'],也就是說,你傳遞了一個字串到一個索引中,在這種情況下,forecastday實際上是一個日期串列,所以你需要做一些事情。
will_it_rain =
result["forecast"]["forecastday"][0]["day"]["daily_will_it_rain"];
chance_of_rain =
result["forecast"]["forecastday"][0]["day"]["daily_chance_of_rain"];
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/350630.html
