我正在尝试从json解析数据。我认为这张图片将帮助您理解问题。
我越来越
Exception has occurred.
_TypeError (type '(dynamic) => MainRank' is not a subtype of type '(String, dynamic) => MapEntry<dynamic, dynamic>' of 'transform')
如果将鼠标悬停在身体上,您会看到黑色弹出数据。 ranks是一个列表,那里还有两个额外的属性。
我的MainRank
班就是这样
class MainRank{
String divisionName;
String tournamentName;
final List<Ranks> ranks;
MainRank(this.divisionName, this.tournamentName, this.ranks);
factory MainRank.fromJson(Map<String, dynamic> json) =>
_$MainRankFromJson(json);
Map<String, dynamic> toJson() => _$MainRankToJson(this);
}
请帮助我解释一下它在飞镖中的工作原理。我来自php / js背景,因此数据类型似乎让我很难受:)谢谢
编辑 我的api的响应是
{
ranks: [....],
divisionName: "Division 2",
tournamentName: "Season 4"
}
我用来解析json的代码是
Future _getData() async{
var res = await CallApi().getData('standings/${widget.id}');
final body = json.decode(res.body);
// final matches = body['matches'];
var data;
if(body!=null){
data = body.map((el) => MainRank.fromJson(el));
}
print(data);
return null;
}
答案 0 :(得分:1)
您想从json数据中获取MainRank
,所以:
更改此内容:
var data;
if(body!=null){
data = body.map((el) => MainRank.fromJson(el));
}
对此:
MainRank data;
if(body!=null){
data = MainRank.fromJson(body);
}