Php 类型';列表<;动态>';不是类型为';地图<;字符串,动态>;
我试图点击一个LaravelAPI,并在flutter中显示它Php 类型';列表<;动态>';不是类型为';地图<;字符串,动态>;,php,laravel,flutter,flutter-layout,Php,Laravel,Flutter,Flutter Layout,我试图点击一个LaravelAPI,并在flutter中显示它 [ { "doctor_name": "abhishek", "username": "abhishek", "uid": "aLSb7ebMfsfAxybrwq21kXjkcJM2", "fees": 500,
[
{
"doctor_name": "abhishek",
"username": "abhishek",
"uid": "aLSb7ebMfsfAxybrwq21kXjkcJM2",
"fees": 500,
"speciality": "Oncologist"
},
{
"username": "amanboi",
"uid": "wpTQALmZd5Yr5BVQyblNstjet1A3",
"fees": 500,
"speciality": "Oncologist",
"doctor_name": "aman"
}
]
当我尝试将它映射到我的模型时,我得到了错误。这就是我的模型的样子
class Doctor {
final String uid;
final int fee;
final String doctor_name;
final String speciality;
Doctor({this.uid, this.fee, this.doctor_name, this.speciality});
factory Doctor.fromJson(Map<String, dynamic> json) {
return Doctor(
uid: json['userId'],
fee: json['fee'],
doctor_name: json['doctor_name'],
speciality: json['speciality']
);
}
}
班级医生{
最后一个字符串uid;
最终整笔费用;
最后的字符串名称;
最后的弦乐特长;
医生({this.uid,this.fee,this.Doctor\u name,this.speciality});
factory Doctor.fromJson(映射json){
返回医生(
uid:json['userId'],
费用:json[“费用”],
医生姓名:json['doctor\u name'],
专业:json['speciality']
);
}
}
这是我的职责
Future<Doctor> doctorlist(String speciality ) async {
final response = await http.post('http://192.168.0.101:8080/querysnapshot', body: {'speciality': speciality});
print('got response successfully');
if (response.statusCode == 200) {
print(response.body);
return Doctor.fromJson(json.decode(response.body));
} else {
throw Exception('Failed to load album');
}
}
Future doctorlist(字符串特性)异步{
最终响应=等待http.post('http://192.168.0.101:8080/querysnapshot,正文:{'speciality':speciality});
打印(“已成功获得响应”);
如果(response.statusCode==200){
打印(响应.正文);
返回Doctor.fromJson(json.decode(response.body));
}否则{
抛出异常(“加载相册失败”);
}
}
我得到的错误是:
type 'List<dynamic>' is not a subtype of type 'Map<String, dynamic>'
类型“List”不是类型“Map”的子类型
您正在将从API获得的列表
传递到模型中。
返回列表
Future doctorlist(字符串特性)异步{
最终响应=等待http.post('http://192.168.0.101:8080/querysnapshot,正文:{'speciality':speciality});
打印(“已成功获得响应”);
如果(response.statusCode==200){
打印(响应.正文);
返回json.decode(response.body);
}否则{
抛出异常(“加载相册失败”);
}
}
在ListView中,可以执行以下操作
ListView.builder(
itemBuilder:(构建上下文,int索引){
Doctor-Doctor=Doctor.fromJson(doctorList[index]);
返回文本(医生姓名);
},
);
但有一件事,如果我输入0,它只会返回json映射的第一个索引,我该如何发送其余的[{“医生姓名”:“阿披舍克”,“用户名”:“阿披舍克”,“uid”:“ALSB7EBMFSFAXYBRWQ21KXJKCHM2”,“费用”:500,“专业”:“肿瘤学家”},{“用户名”:“amanboi”,“uid”:“wpTQALmZd5Yr5BVQyblNstjet1A3”,“费用”:500,“专业”:“肿瘤学家”,“医生姓名”:“阿曼”}]您想对列表做什么?我想创建该响应中所有医生姓名的列表。您需要返回列表,而不是医生模型。