我正面临着一个奇怪的颤动错误。我使用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);
}
我的web api发送的数据如下
[
[
{..},
{..},
{..},
{..}
],
[...],
[...],
[...],
[...],
[...],
[...]
]
这是数组的数组。
生成错误的代码是
data = body.map((el) => DivMatches.fromJson(el)).toList();
它给出的错误
Exception has occurred.
_TypeError (type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>')
JSON数据这里是JSON数据格式的屏幕截图
可以使用强制转换
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;
}
更改此行:
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));
});
注意:检查您是否匹配。fromJson返回匹配的对象或映射。
当我尝试解码json时,它会给我错误。 我的模范班 功能在我使用它的地方 json数据
我目前正在构建一个应用程序,通过医疗api读取数据,我试图解析JSON。 我为用户创建了一个模型类: 这是我试图阅读的JSON信息: 但是我得到的错误列表不是Map类型的子类型 如何修复此错误?
我有一个问题,因为2小时。我有这个错误,我看到了更多的主题,但我不能解决它。 消息:_TypeError(类型列表不是类型映射的子类型)颤动 我的模型: 我的主题屏幕: 我尝试了更多的教程和不同的主题,但我有相同的错误。。。 非常感谢。
我的JSON有点像这样: 我的模型类: 这是我的api调用: 如何获取图像。小班?如果我需要澄清我的问题,请告诉我。我得到的错误列表不是Map类型的子类型
因此,我创建了一个应用程序,通过api读取数据,并尝试解析JSON api 这是我的错误截图 我试着把它改成一个列表,但它仍然读取一个错误 这是我的密码大象。飞奔 如何纠正此错误?请帮忙
我试图获得用户信息后,用户输入电子邮件和密码。我使用的api会返回我用户的额外信息,所以我尝试从中获取这些信息。 我试图解析这个json: 这些是我的模型: 这是我发送电子邮件、密码和获取用户数据的部分: 这是给我错误的部分 我打印了响应体,它给出了我想要的字符串,但是jsonDecode返回了一个列表,所以我不能使用它。我怎样才能解决这个问题?提前谢谢。