在这里,我试图创建一个未来的listview生成器,得到一条错误消息:_TypeError(type'List'不是type'Map'的子类型)flift。我需要在列表视图中获取帖子中的所有数据。使用JSON到dart转换器quicktype创建模型类。木卫一
未来电话
Future<Posts> getPosts() async {
try {
final response =
await http.get(Uri.https('jsonplaceholder.typicode.com', 'posts'));
var data = jsonDecode(response.body);
return Posts.fromJson(data);
} catch (e) {
print(e);
}
}
模型
List<Posts> postsFromJson(String str) => List<Posts>.from(json.decode(str).map((x) => Posts.fromJson(x)));
String postsToJson(List<Posts> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Posts {
Posts({
this.userId,
this.id,
this.title,
this.body,
});
int userId;
int id;
String title;
String body;
factory Posts.fromJson(Map<String, dynamic> json) => Posts(
userId: json["userId"],
id: json["id"],
title: json["title"],
body: json["body"],
);
Map<String, dynamic> toJson() => {
"userId": userId,
"id": id,
"title": title,
"body": body,
};
}
改变这个:
var data = jsonDecode(response.body);
变成这样:
var data = (jsonDecode(response.body) as List<dynamic>).cast<Map<String, dynamic>>();
我认为你应该使用:
return postsFromJson(data);
并使该函数返回一个列表,因为在响应体中它返回一个对象列表,因此只使用POST。fromJson()会给您这个错误,因为Posts。fromJson()需要一个映射,您给了它一个列表。如果您只需要一个项目,您可以访问列表中的该项目并将其提供给帖子。fromJson()函数
我认为你的API返回的帖子列表不仅仅是一篇帖子。首先,我建议将您的类名从Post重命名为Post,然后下面的代码可以解决您的问题:
Future<List<Posts>> getPosts() async {
try {
final response =
await http.get(Uri.https('jsonplaceholder.typicode.com', 'posts'));
var data = jsonDecode(response.body);
return data.map<Posts>((data) => Posts.fromJson(json.decode(data))).toList();
} catch (e) {
print(e);
}
}
我正在开发一个依靠API REST调用的flutter应用程序。来自API的响应有点复杂。当调用我的API(例如:api/产品)时,我可以从日志中看到响应:但是我有这个错误: 类型列表 StackTrace: [更新]:退货产品响应。fromJson(response)而不是response ProductsRespository: ProductsBloc: 回应: ApiProvider: 模
我正在学习飞镖和颤振。现在,我尝试将JSON作为一种持久性方法。我犯了很多错误,都是关于类型和内容的。这是我遇到的最新错误:
我在这里做了一个类似的帖子:问题,但我做了同样的事情,我一直是问题... 我有我的班级: ask API的方法: 当我询问我的API时,请求的结果是: {结果:[{id:2,题为:语言利用率是多少?难度:1,答案:[{id:9,题为:Oui,isCorrect:true},{id:10,题为:Non,isCorrect:false}],页码:3,下一步:http://localhost:3000/
我从Firestore示例中复制了一段代码: 但是我得到了这个错误 这里出了什么问题?
需要你的帮助解决这个错误在Flutter...也如何在其他屏幕上使用这个回调的实例? 这是我的留言。json数据模型 我的消息是一个模型。飞奔 这是我的留言。飞奔 _TypeError(类型“List”不是类型“Map”的子类型
我试图加载数据从我的strapi数据库列表,即:http://localhost:1337/products下面是一个示例数据从我的数据库: [{“picture”:[{“_id”:“602d327fe790253a44f466e7”,“name”:“petromax.png”,“alternativeText”:“caption”:“hash”:“petromax_14618; add72”,“