我收到以下格式的数据:
[
[
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
],
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
],
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
]
],
[
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
],
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
],
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
]
]
]
如何正确序列化此 json 以使性能不下降?
我使用了以下方法,但是当接收到大量数据时,性能急剧下降:
class MapData {
final String a;
final String b;
final String c;
MapData({this.a, this.b, this.c});
}
使用时initState:
var allData = json.decode(widget.data);
var myData = List<List<List<MapData>>>();
for (int i = 0; i < allData.length; i++) {
myData.add([]);
for (int i0 = 0; i0 < allData[i].length; i0++) {
myData[i].add([]);
for (int i1 = 0; i1 < allData[i][i0].length; i1++) {
var record = MapData(
a: allData[i][i0][i1]['a'],
b: allData[i][i0][i1]['b'],
c: allData[i][i0][i1]['c'],);
myData[i][i0].add(record);
}
}
}
我正在使用这种 json 格式的所有数据,即List(вертикальный список)<List(горизонтальный список внутри вертикального списка)<List(еще один список внутри горизонтального списка)<Map<String,String>(отображаемые данные внитри списка)>>>
建议将这么重的东西放在单独的隔离中。而三重周期永远是漫长的,这里什么也做不了……
我什至不知道它的用途,但它是: