我在颤振中遇到了一个奇怪的错误。我正在使用 json 可序列化。
这是我的代码
class DivMatches{
final List<Match> matches;
DivMatches(this.matches);
factory DivMatches.fromJson(Map<String, dynamic> json) =>
_$DivMatchesFromJson(json);
Map<String, dynamic> toJson() => _$DivMatchesToJson(this);
}
Run Code Online (Sandbox Code Playgroud)
我的 web api 发送这样的数据
[
[
{..},
{..},
{..},
{..}
],
[...],
[...],
[...],
[...],
[...],
[...]
]
Run Code Online (Sandbox Code Playgroud)
它是数组的数组。
产生错误的代码是
data = body.map((el) => DivMatches.fromJson(el)).toList();
Run Code Online (Sandbox Code Playgroud)
它给出的错误
Exception has occurred.
_TypeError (type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>')
Run Code Online (Sandbox Code Playgroud)
这里的JSON DATA是json数据格式的截图
改变这一行:
final body = json.decode(res.body);
Run Code Online (Sandbox Code Playgroud)
对此:
final body = json.decode(res.body) as List;
Run Code Online (Sandbox Code Playgroud)
和这个:
List<DivMatches> data = [];
body.forEach((el) {
final List<Match> sublist = el.map((val) => Match.fromJson(val)).toList();
data.add(DivMatches(sublist));
});
Run Code Online (Sandbox Code Playgroud)
注意:检查您的 Match.fromJson 是否返回 Match 对象或 Map。
| 归档时间: |
|
| 查看次数: |
12228 次 |
| 最近记录: |