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

使用map和fromjson无法将API转为List<SubCatModal>类型问题

解决List转List的问题

你可以通过以下几种方式将转换后的列表类型明确为List<SubCatModal>:

方法一:使用List<SubCatModal>.from()构造列表

直接用目标类型的List构造器包裹map结果,明确指定元素类型:

final List<SubCatModal> responseJson = List<SubCatModal>.from(
  allSubCatListApi['data'].map((e) => SubCatModal.fromjson(e))
);

方法二:用cast<SubCatModal>强制转换类型

在toList()之后调用cast方法,将动态列表转为目标类型:

final List<SubCatModal> responseJson = allSubCatListApi['data']
    .map((e) => SubCatModal.fromjson(e))
    .toList()
    .cast<SubCatModal>();

方法三:给map指定泛型参数

在map方法中明确指定返回的元素类型,这样toList()会直接生成对应类型的列表:

final List<SubCatModal> responseJson = allSubCatListApi['data']
    .map<SubCatModal>((e) => SubCatModal.fromjson(e))
    .toList();

额外优化建议

建议将构造函数名改为符合Dart规范的fromJson(首字母大写),同时用初始化列表简化代码:

class SubCatModal {
  late int id;
  late String name;
  late String img;
  late String color;

  SubCatModal.fromJson(Map<String, dynamic> json)
      : id = json['id'],
        name = json['name'],
        img = json['img'],
        color = json['color'];
}

内容的提问来源于stack exchange,提问作者Shady Hesham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:12:17