Arrays 颤振映射json到模型数组';列表<;动态>';不是类型为';地图<;字符串,动态>'`

Arrays 颤振映射json到模型数组';列表<;动态>';不是类型为';地图<;字符串,动态>'`,arrays,list,flutter,Arrays,List,Flutter,我正在阅读一个包含几个不同数组的json。所以我想把它映射到它的单个模型列表。因此,我首先创建了列表,例如如下所示 class Summary { final String totalDuration; final String totalMileage; //final String fleetID; Summary({this.totalDuration, this.totalMileage}); Map<String, dynamic> toJson

我正在阅读一个包含几个不同数组的json。所以我想把它映射到它的单个模型列表。因此,我首先创建了列表,例如如下所示

class Summary {


  final String totalDuration;
  final String totalMileage;
  //final String fleetID;

  Summary({this.totalDuration, this.totalMileage});

  Map<String, dynamic> toJson() => {
        'totalDuration': totalDuration,
        'totalMileage': totalMileage,

      };

  factory Summary.fromJson(Map<String, dynamic> json) {
    return new Summary(
      totalDuration: json['totalDuration'],
      totalMileage: json['totalMileage'],

    );
  }
}
下面是我如何编写来填充摘要数组的

final fullJson = await NetworkUtils.post(url,token,data);
        print("fullJson"+fullJson.toString());
        try{
        Summary summary1 = new Summary.fromJson(fullJson['Summary']);

         print(summary1.totalMileage);
        }
        catch(Err){
          print("Erro is at"+Err.toString());
        }

我最终得到的
类型“List”不是类型“Map”的子类型

这是因为返回的响应包含Map列表而不是Map

更改行
Summary summary1=new Summary.fromJson(fullJson['Summary'])

to
Summary summary1=new Summary.fromJson(fullJson['Summary'][i])

其中i可以是0到Summary中的对象数减1之间的任意值

要获取
Summary
对象的完整列表,请执行以下操作:

int totalSummaryCount = fullJson['totalSummary'];
List<Summary> list = new List<Summary>.generate(totalSummaryCount, (index)=>Summary.fromJson(fullJson['Summary'][index]));
inttotalsummarycount=fullJson['totalSummary'];
List List=new List.generate(totalSummaryCount,(index)=>Summary.fromJson(fullJson['Summary'][index]);

这是因为返回的响应包含映射列表而不是映射

更改行
Summary summary1=new Summary.fromJson(fullJson['Summary'])

to
Summary summary1=new Summary.fromJson(fullJson['Summary'][i])

其中i可以是0到Summary中的对象数减1之间的任意值

要获取
Summary
对象的完整列表,请执行以下操作:

int totalSummaryCount = fullJson['totalSummary'];
List<Summary> list = new List<Summary>.generate(totalSummaryCount, (index)=>Summary.fromJson(fullJson['Summary'][index]));
inttotalsummarycount=fullJson['totalSummary'];
List List=new List.generate(totalSummaryCount,(index)=>Summary.fromJson(fullJson['Summary'][index]);

如何一次完成整个列表,而不是一个接一个地完成?好的,我会试试。因此,当我回忆起api时,我是否需要首先清除前面的列表?完全清除列表的正确命令是什么?等等。在每个api之后,我根本不想要任何旧值。您可以使用
List.clear()当您收到来自API的响应时,或者您可以创建一个类变量并用获得的结果更新它。你可以看到官方的列表文档如何清除我们定义为列表=新列表的原因?如何一次完成整个列表而不是一个接一个?好的,我会试试。因此,当我回忆起api时,我是否需要首先清除前面的列表?完全清除列表的正确命令是什么?等等。在每个api之后,我根本不想要任何旧值。您可以使用
List.clear()当您收到来自API的响应时,或者您可以创建一个类变量并用获得的结果更新它。您可以查看官方列表文档,了解如何清除我们定义为List List=new List的原因?