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

如何用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:33:14