这是我的代码:
class ProveedoresService{
final _dio = new Dio();
Future<List<ProveedorModel>> getProveedorByName() async{
final resp = await _dio.get(url);
final List<ProveedorModel> proveedorList = resp.data; //HERE MARKS MY ERROR....
return proveedorList.map(
(obj) => ProveedorModel.fromJson(obj)
).toList();
}
}
我得到的错误是:
_类型错误(类型“\u InternalLinkedHashMap
来自API的数据不等同于List
可能是一个
列表
因此,您的
resp.data
具有List的数据类型
现在转换
List
示例
class ProvModel {
final String name;
final int age;
const ProvModel({this.name, this.age});
// From Map function
factory ProvModel.fromMap(Map<String, dynamic> data) {
// API:
// [
// {
// 'name_field': "Alex",
// 'age_field': 20,
// },
// ]
return ProvModel(
name: data['name_field'],
age: data['age_field'],
);
}
}
现在您必须转换
resp的每个元素。将数据
放入模型
并添加到返回列表中。
class ProvService {
final _dio = new Dio();
Future<List<ProvModel>> getProvByName() async {
final resp = await _dio.get(url);
final List<Map<String, dynamic>> list = resp.data;
final List<ProvModel> provList = [];
for (Map<String, dynamic> data in list) {
// Converting each and every element form Map<String, dynamic> to ProvModel
final ProvModel provModel = ProvModel.fromMap(data);
provList.add(provModel);
}
return provList;
}
}
希望这将解决您给定的错误。
如果您有任何疑问,请予以评论。
我是颤振初学者。我得到这样的JSON响应时出错。 我一直在论坛上寻找这个问题,我发现是这样的。 但我不懂如何编写函数。这是我的密码。 还有像这样的错误。 我很抱歉问了同样的问题,因为我不明白
我有点被某些情况困住了。 1)
你好,我正在做一个api调用,在那里我得到了一系列的横幅。我正在犯错误- 横幅。飞奔 横幅。飞奔 api_base_助手。飞奔 得到你的横幅。飞奔
我想要一张地图 我的对象是 http代码在这里 我得到了错误 谢谢
我有一个问题,因为2小时。我有这个错误,我看到了更多的主题,但我不能解决它。 消息:_TypeError(类型列表不是类型映射的子类型)颤动 我的模型: 我的主题屏幕: 我尝试了更多的教程和不同的主题,但我有相同的错误。。。 非常感谢。
在存储到本地数据库之前,将字符串转换为对象的正确方法是什么? 这是的输出: 我试图将其转换为CreatedBy对象 创造的 这里是我的本地表列 错误