如何在Flutter中将类Python字典转换为自定义User模型列表
转换步骤
你拿到的类Python字典结构在Flutter中对应的类型是Map<int, Map<String, dynamic>>,按以下两步操作即可完成转换:
1. 定义User模型类
新增带fromMap命名构造的User类,支持直接从字典生成User实例:
class User { final String id; final String name; User({ required this.id, required this.name, }); // 从Map构造User的专用方法 User.fromMap(Map<String, dynamic> map) : id = map['id'] as String, // 注意此处key要和数据源的大写开头Name保持一致 name = map['Name'] as String; // 可选:方便调试查看输出的重写方法 @override String toString() => 'User(id: $id, name: $name)'; }
2. 执行格式转换
提取原始Map的所有value值(即内层的单个用户字典),批量转换后生成列表:
void main() { // 你从数据源获取到的原始数据 final Map<int, Map<String, dynamic>> rawData = { 0: {'id': '3422', 'Name': 'John',}, 1: {'id': '3322', 'Name': 'Mark',} }; // 核心转换逻辑 final List<User> allUsers = rawData.values.map((userMap) => User.fromMap(userMap)).toList(); // 验证输出,结果为 [User(id: 3422, name: John), User(id: 3322, name: Mark)] print(allUsers); }
可选优化
如果不确定数据源的字段是否可能为空,可以修改类型转换逻辑加默认值,避免运行时报错:
User.fromMap(Map<String, dynamic> map) : id = map['id'] as String? ?? '', name = map['Name'] as String? ?? '未知用户名';
内容的提问来源于stack exchange,提问作者Lash
相关产品推荐
相关产品推荐

