未处理的异常:类型 'List<dynamic>' 不是颤振中类型 'Map<dynamic, dynamic>' 的子类型
Posted
技术标签:
【中文标题】未处理的异常:类型 \'List<dynamic>\' 不是颤振中类型 \'Map<dynamic, dynamic>\' 的子类型【英文标题】: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 = ...
【参考方案1】:
改变这个:
Map data = jsonDecode(response.body);
进入这个:
List<dynamic> data = jsonDecode(response.body);
【讨论】:
以上是关于未处理的异常:类型 'List<dynamic>' 不是颤振中类型 'Map<dynamic, dynamic>' 的子类型的主要内容,如果未能解决你的问题,请参考以下文章
未处理的异常:类型“List<dynamic>”不是“List<CustomerTransactionDetail>”类型的子类型
未处理的异常:类型 'List<dynamic>' 不是类型 'Map<String, dynamic>' 的子类型
未处理的异常:类型'List<dynamic>'不是'String'类型的子类型无法获取json数据[重复]
未处理的异常:类型 'List<dynamic>' 不是颤振中类型 'Map<dynamic, dynamic>' 的子类型