extractList<R> method
从 Map 中提取列表字段并转换为模型列表 适用于从 Map<String, dynamic> 中提取 List 字段并转换为模型列表
如果数据不是 Map 类型或字段不是 List,自动返回空列表 内部已处理类型转换和异常,用户只需要提供字段名和 fromJson 函数
示例:
final users = response.extractList<User>('users', User.fromJson);
final items = response.extractList<Item>('data.items', Item.fromJson);
Implementation
List<R> extractList<R>(
String key,
R Function(Map<String, dynamic> json) fromJson,
) {
return extract<List<R>>((data) {
if (data is! Map<String, dynamic>) return [];
final list = data[key];
if (list is! List) return [];
return list
.whereType<Map<String, dynamic>>()
.map((item) => fromJson(item))
.toList();
}) ??
[];
}