flutter 错误:“期望一个”List“类型的值< dynamic>,但得到了一个”_JsonMap“类型的值”

mccptt67  于 2023-11-21  发布在  Flutter
关注(0)|答案(1)|浏览(150)

这是我的代码

class ProdukAPI {
  Future<List<listProduk>> getProduk() async {
    final response =
        await http.get(Uri.parse('http://192.168.2.17:3000/produk/tampil'));
    if (response.statusCode == 200) {
      List jsonResponse = json.decode(response.body);
      return jsonResponse.map((data) => listProduk.fromJson(data)).toList();
    } else {
      throw Exception('Failed to load data');
    }
  }
}

字符串
请帮帮我

tp5buhyn

tp5buhyn1#

您遇到的错误指示预期类型List和实际类型“_JsonMap”之间的类型不匹配。当从API接收的数据未转换为正确的类型时,通常会发生这种情况。
在你的代码中,你正在使用json.decode(response.body)解码响应体,它返回一个动态类型。看起来列表中的各个项目都是_JsonMap类型,而不是简单的JSON类型。
要解决这个问题,您需要将各个项目转换为正确的类型。我假设listProduk.fromJson(data)需要Map<String,dynamic>作为参数。

class ProdukAPI {

  Future<List<listProduk>> getProduk() async {

    final response =
        await http.get(Uri.parse('http://192.168.2.17:3000/produk/tampil'));
    if (response.statusCode == 200) {

      List<dynamic> jsonResponse = json.decode(response.body);
      return jsonResponse.map((data) => listProduk.fromJson(data as Map<String, dynamic>)).toList();
    } else {
      throw Exception('Failed to load data');
    }
  }
}

字符串

相关问题