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

Flutter中如何遍历对象数组获取数组内对象的id字段值

实现方法

你当前代码里json.decode(json.encode(data.body))属于冗余操作,http.get返回的response.body本身就是JSON格式字符串,直接传入json.decode即可完成解析,不需要额外做一次encode。

你打印得到的[{"id":"168"}]解析后是Dart的List类型,列表中每个元素是存储键值对的Map类型,对应你要的id字段可以通过以下两种方式获取:

  • 当你确定接口返回的列表永远非空、且目标id就在第一个元素时,直接通过下标取值即可:
Future ppp() async {
  var url ='my url here';
  final response = await http.get(Uri.parse(url));
  return response;
}

var data = await ppp();
// 直接解析响应体,去掉多余的encode步骤
List<dynamic> resultList = json.decode(data.body);
// 判空避免越界报错
if(resultList.isNotEmpty){
  String idValue = resultList[0]['id'];
  // 如果需要整数类型的168,做一次类型转换即可
  int idNum = int.parse(idValue);
  print(idValue); // 输出 168
}
  • 当列表可能包含多个元素、需要遍历匹配目标id时,使用循环遍历列表即可:
List<dynamic> resultList = json.decode(data.body);
for(Map<String, dynamic> item in resultList){
  // 可以在这里加判断逻辑筛选符合条件的项
  String currentId = item['id'];
  print(currentId); // 单元素场景下直接输出168
}

内容的提问来源于stack exchange,提问作者Michael Ng'ang'a Njoroge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 07:30:43