Dart 颤振类型错误类型';列表<;动态>';不是类型为';地图<;字符串,动态>;

Dart 颤振类型错误类型';列表<;动态>';不是类型为';地图<;字符串,动态>;,dart,flutter,Dart,Flutter,我正面临着一个奇怪的错误。我正在使用json serialisable 这是我的密码 class DivMatches{ final List<Match> matches; DivMatches(this.matches); factory DivMatches.fromJson(Map<String, dynamic> json) => _$DivMatchesFromJson(json); Map<String, dynamic&g

我正面临着一个奇怪的错误。我正在使用json serialisable

这是我的密码

class DivMatches{
  final List<Match> matches;
   DivMatches(this.matches);
  factory DivMatches.fromJson(Map<String, dynamic> json) =>
  _$DivMatchesFromJson(json);
  Map<String, dynamic> toJson() => _$DivMatchesToJson(this);

}
这是数组的数组

生成错误的代码是

data = body.map((el) => DivMatches.fromJson(el)).toList(); 
它给出的错误

Exception has occurred.
_TypeError (type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>')
发生异常。 _TypeError(类型“List”不是类型“Map”的子类型) 这是截图

JSON数据 以下是json数据格式的屏幕截图

更改此行:

final body = json.decode(res.body);
为此:

final body = json.decode(res.body) as List;
这是:

List<DivMatches> data = [];

body.forEach((el) {
   final List<Match> sublist = el.map((val) => Match.fromJson(val)).toList();
   data.add(DivMatches(sublist));
}); 
列表数据=[];
车身前部((el){
最终列表子列表=el.map((val)=>Match.fromJson(val)).toList();
data.add(DivMatches(sublist));
}); 
注意:检查Match.fromJson是否返回匹配对象或映射。

您可以使用
cast()

导入'dart:convert';
void main(){
打印(getScores());
}
班级成绩{
智力得分;
分数({this.Score});
factory Score.fromJson(映射json){
返回分数(分数:json['Score']);
}
}
列出getScores(){
var jsonString=''
[
{“分数”:40},
{“分数”:80}
]
''';
列表分数=jsonDecode(jsonString)
.map((项)=>Score.fromJson(项))
托利斯先生()
.cast();//解决未处理的异常:类型“List”不是类型“List”的子类型
返回分数;
}

不幸的是,同样的问题。您检查了我的上一个答案吗?此行给出错误
数据。添加(DivMatches(sublist))
\u TypeError(type'List'不是type'List'的子类型)
我想要一个嵌套的数据被解析。这个应该可以工作:final List sublist=el.map((val)=>Match.fromJson(val)).toList();我现在只是这样使用它,但它一直给我
异常发生_TypeError(类型“List”不是类型“List”的子类型)
当我在从FireBase数据库获取时包括相关模型的ID并从ID构建新对象时,这对我来说是有效的。需要一种简单的方法来使用多个模型关系Object.fromJson(),这很有效,谢谢。
List<DivMatches> data = [];

body.forEach((el) {
   final List<Match> sublist = el.map((val) => Match.fromJson(val)).toList();
   data.add(DivMatches(sublist));
}); 
import 'dart:convert';

void main() {
  print(getScores());
}

class Score {
  int score;
  Score({this.score});

  factory Score.fromJson(Map<String, dynamic> json) {
    return Score(score: json['score']);
  }
}

List<Score> getScores() {
  var jsonString = '''
  [
    {"score": 40},
    {"score": 80}
  ]
''';

  List<Score> scores = jsonDecode(jsonString)
      .map((item) => Score.fromJson(item))
      .toList()
      .cast<Score>(); // Solve Unhandled exception: type 'List<dynamic>' is not a subtype of type 'List<Score>'

  return scores;
}