_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 中不存在键 idname,则将返回一个空字符串。

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 应该如上所示。