_TypeError(类型'Null'不是类型'String'的子类型)Flutter
_TypeError (type 'Null' is not a subtype of type 'String') Flutter
这个项目真的很讨厌我编码,谁能帮助我?我在这里做错了什么?
https://imgur.com/a/ptNwnCu
您在第 8 行中返回的 Source 对象需要一个 String 类型的 id 和 name。您可能没有从 JSON 中获得名为 id
的密钥,这就是出现 TypeError 的原因。
您可以添加空检查运算符以不获取任何异常。
return Source(id: json['id'] ?? "", name: json['name'] ?? "")
现在,如果 JSON 中不存在键 id
和 name
,则将返回一个空字符串。
class Source {
Source({
this.id,
this.name,
});
String? id;
String name;
factory Source.fromJson(Map<String, dynamic> json) => Source(
id: json["id"] == null ? null : json["id"],
name: json["name"] == null ? null : json["name"],
);
Map<String, dynamic> toJson() => {
"id": id == null ? null : id,
"name": name == null ? null : name,
};
}
您缺少 json 数据的空值检查。您的 class 应该如上所示。
这个项目真的很讨厌我编码,谁能帮助我?我在这里做错了什么? https://imgur.com/a/ptNwnCu
您在第 8 行中返回的 Source 对象需要一个 String 类型的 id 和 name。您可能没有从 JSON 中获得名为 id
的密钥,这就是出现 TypeError 的原因。
您可以添加空检查运算符以不获取任何异常。
return Source(id: json['id'] ?? "", name: json['name'] ?? "")
现在,如果 JSON 中不存在键 id
和 name
,则将返回一个空字符串。
class Source {
Source({
this.id,
this.name,
});
String? id;
String name;
factory Source.fromJson(Map<String, dynamic> json) => Source(
id: json["id"] == null ? null : json["id"],
name: json["name"] == null ? null : json["name"],
);
Map<String, dynamic> toJson() => {
"id": id == null ? null : id,
"name": name == null ? null : name,
};
}
您缺少 json 数据的空值检查。您的 class 应该如上所示。