Flutter 转换 List<List<dynamic>>
Posted
技术标签:
【中文标题】Flutter 转换 List<List<dynamic>>【英文标题】:Flutter convert List<List<dynamic>> 【发布时间】:2021-11-17 00:53:01 【问题描述】:我有一个 Flutter 应用程序,我在其中发出一个 http 请求,它为我带来了 json 数据。在用一个包格式化它之后,我得到一个动态类型列表的列表。这是它的样子:
[[2016-04-01, 85.5254], [2016-05-01, 89.1118], [2016-06-01, 91.8528], [2016-07-01, 93.7328], [2016-08-01, 93.9221], [2016-09-01, 95.0014], [2016-10-01, 97.2428], [2016-11-01, 98.8166]]
所以我创建了一个名为 IpcData 的类,它接收一个 String 和一个 double。
class IpcData
final String date;
final double value;
IpcData(this.date, this.value);
所以我们可以猜测 IpcData 实例如下所示:
IpcData(2016-08-01, 93.9221)
我不知道怎么做,但我想要一个方法,使用 List> 中的信息返回 List
[IpcData(2016-08-01, 93.9221), IpcData(2016-08-01, 93.9221), IpcData(2016-08-01, 93.9221),]
【问题讨论】:
【参考方案1】:您可以在原始列表上使用 .map 函数来构建新列表。像这样的。
class IpcData
final String date;
final double value;
IpcData(this.date, this.value);
@override
String toString()
return '$date -> $value';
void main()
List<List<dynamic>> initList = [
['2016-04-01', 85.5254], ['2016-05-01', 89.1118], ['2016-06-01', 91.8528],
['2016-07-01', 93.7328], ['2016-08-01', 93.9221], ['2016-09-01', 95.0014],
['2016-10-01', 97.2428], ['2016-11-01', 98.8166], ['2016-12-01', 99.8166]
];
List<IpcData> ipcList = initList.map((e) => IpcData(e[0], e[1])).toList();
print(ipcList);
【讨论】:
谢谢,效果很好!以上是关于Flutter 转换 List<List<dynamic>>的主要内容,如果未能解决你的问题,请参考以下文章
在 Flutter 中将 List<List<dynamic>> 转换为 ArrayList
Flutter StreamProvider 'List<dynamic>' 不是类型转换中类型 'List<??>' 的子类型
Flutter 类型“Future<List<dynamic>>”不是类型转换中“List<dynamic>”类型的子类型
将 Future<List> 从 Firestore 转换为 List<String> - Flutter Firebase [重复]