【问题标题】:Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'Map<dynamic, dynamic>' in flutter未处理的异常:类型 'List<dynamic>' 不是颤振中类型 'Map<dynamic, dynamic>' 的子类型
【发布时间】:2020-05-24 12:59:29
【问题描述】:

我刚接触flutter,正在尝试创建我的第一个从 API 获取一些数据的应用程序。 以下是 API 结果主体的样子:

[
    {
        "id": 1,
        "user": {
            "username": "admin@admin.com"
        },
        "name": "Ahmed Wagdi qwqw",
        "username": "admin",
        "password": "******",
        "location": {
            "user": {
                "username": "admin@admin.com"
            },
            "name": "Ahmed Wagdi",
            "phone": "01207199086",
            "latitude": "31.078221",
            "longitude": "29.734717"
        },
        "type": "Manager",
        "direct_manager": "http://g-attend.com:8000/api/panel/api/employees/1/",
        "on_duty": true
    }
]

这就是我如何尝试在颤振中调用和解析它:


import 'package:http/http.dart';
import 'dart:convert';


void gettingEmployees() async{
    String url = 'http://my_url.com';
    Response response = await get(url, headers: {"Authorization":"My basic auth"});
    Map data = jsonDecode(response.body);
    print(data);
  }

最后,我得到了这个错误:

Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'Map<dynamic, dynamic>' in flutter

【问题讨论】:

  • 您在响应中的第一个字节是 [ 所以这是 List 而不是 Map - List data = ...

标签: android ios api flutter dart


【解决方案1】:

改变这个:

    Map data = jsonDecode(response.body);

进入这个:

    List<dynamic> data = jsonDecode(response.body);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2019-09-26
    • 2021-05-21
    • 1970-01-01
    • 2020-11-05
    • 2020-08-20
    • 1970-01-01
    相关资源
    最近更新 更多