首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >继续获取这个错误-未处理的异常:键入'_InternalLinkedHashMap<String,dynamic>‘不是'List<dynamic>’的子类型。

继续获取这个错误-未处理的异常:键入'_InternalLinkedHashMap<String,dynamic>‘不是'List<dynamic>’的子类型。
EN

Stack Overflow用户
提问于 2022-11-14 10:44:33
回答 1查看 8关注 0票数 0

我试图获得一个API,这个错误显示,我提供了我的API代码。

代码语言:javascript
运行
复制
PeopleModel peopleModelFromJson(String str) => PeopleModel.fromJson(json.decode(str));

String peopleModelToJson(PeopleModel data) => json.encode(data.toJson());

class PeopleModel {
    PeopleModel({
        this.page,
        this.perPage,
        this.total,
        this.totalPages,
        this.data,
        this.support,
    });

    int? page;
    int? perPage;
    int? total;
    int? totalPages;
    List<Datum>? data;
    Support? support;

    factory PeopleModel.fromJson(Map<String, dynamic> json) => PeopleModel(
        page: json["page"],
        perPage: json["per_page"],
        total: json["total"],
        totalPages: json["total_pages"],
        data: List<Datum>.from(json["data"].map((x) => Datum.fromJson(x))),
        support: Support.fromJson(json["support"]),
    );

    Map<String, dynamic> toJson() => {
        "page": page,
        "per_page": perPage,
        "total": total,
        "total_pages": totalPages,
        "data": List<dynamic>.from(data!.map((x) => x.toJson())),
        "support": support!.toJson(),
    };
}

class Datum {
    Datum({
        this.id,
        this.email,
        this.firstName,
        this.lastName,
        this.avatar,
    });

    int? id;
    String? email;
    String? firstName;
    String? lastName;
    String? avatar;

    factory Datum.fromJson(Map<String, dynamic> json) => Datum(
        id: json["id"],
        email: json["email"],
        firstName: json["first_name"],
        lastName: json["last_name"],
        avatar: json["avatar"],
    );

    Map<String, dynamic> toJson() => {
        "id": id,
        "email": email,
        "first_name": firstName,
        "last_name": lastName,
        "avatar": avatar,
    };
}

class Support {
    Support({
        this.url,
        this.text,
    });

    String? url;
    String? text;

    factory Support.fromJson(Map<String, dynamic> json) => Support(
        url: json["url"],
        text: json["text"],
    );

    Map<String, dynamic> toJson() => {
        "url": url,
        "text": text,
    };
}

这是///////////////////////////////////////////////////////////////////////////////

我的API代码页//////////////////////////////////////////////////////////////////////

代码语言:javascript
运行
复制
    class PeopleService{
   List<PeopleModel> peoples = [];
   Future <List<PeopleModel>> getPeopleData()async{
        final url = 'https://reqres.in/api/users';
        final response = await http.get(Uri.parse(url));
        if (response.statusCode == 200) {
           final List peopleList = jsonDecode(response.body);
           peoples = peopleList.map((e) =>PeopleModel.fromJson(e)).toList();
           
           print(response.body);
        }
        return peoples;
   }
}

此错误显示在控制台未处理的异常中:键入“_InternalLinkedHashMap”不是“List”类型的子类型,任何建议都会有帮助。

EN

回答 1

Stack Overflow用户

发布于 2022-11-14 12:15:55

人民是一份清单。peopleList.map((e) =>PeopleModel.fromJson(e))返回一个地图。您不能只对它调用.toList()并直接将它传递给人。您应该手动操作数据并填充人员列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74430401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档