如何用jsonDecode解析API JSON数据并访问days、region1等嵌套字段?
解决JSON解析与数据访问问题
问题根源
你原代码中遍历listData.entries后调用item.days是错误的——entries返回的是MapEntry对象,它只有key和value属性,并没有days字段。以下是正确的解析与访问方式:
1. 获取并打印days对象
最外层JSON是一个Map,直接通过键"days"即可获取对应的子Map:
final Map<String, dynamic> listData = jsonDecode(response.body); // 提取days对应的Map final Map<String, dynamic> daysData = listData['days'] as Map<String, dynamic>; print('days内容: $daysData');
2. 获取并打印region1数组
从days的Map中,通过键"region1"获取对应的数组:
// 提取region1对应的数组 final List<dynamic> region1List = daysData['region1'] as List<dynamic>; print('region1内容: $region1List');
3. 访问数组中的具体值(如Monday)
遍历region1数组,每个元素是一个Map,通过对应的数字键(如"2")获取星期名称等数据:
for (final dayEntry in region1List) { // 获取星期名称(对应键"2") final String dayName = dayEntry['2'] as String; // 获取最高温(对应键"3") final String highTemp = dayEntry['3'] as String; // 获取最低温(对应键"4") final String lowTemp = dayEntry['4'] as String; print('星期: $dayName, 最高温: $highTemp℃, 最低温: $lowTemp℃'); }
内容的提问来源于stack exchange,提问作者mana
相关产品推荐
相关产品推荐

