listFromJson<T> method
JSON 字符串或列表转为对象列表
Implementation
List<T>? listFromJson<T>(
dynamic source,
T Function(Map<String, dynamic> map) fromMap,
) {
if (source == null) return null;
try {
List<dynamic> list;
if (source is String) {
list = json.decode(source);
} else if (source is List) {
list = source;
} else {
return null;
}
return list
.map((item) {
if (item is String) {
final decoded = json.decode(item);
if (decoded is Map<String, dynamic>) {
return fromMap(decoded);
}
} else if (item is Map<String, dynamic>) {
return fromMap(item);
}
return null;
})
.whereType<T>()
.toList();
} catch (e, stackTrace) {
logger.e("JSON 列表解析失败: $e\n源数据: $source\n$stackTrace");
return null;
}
}