Flutter 错误类型 '_InternalLinkedHashMap<String, dynamic>' 不是类型 'List<dynamic>' 的子类型
Flutter Error type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>'
我正在尝试使用提供程序包和 either_options 从我的 RESTAPI 中获取一些帖子,但我遇到了一些麻烦。每次我 运行 应用程序都会给我这个错误
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List'
这是提到错误的地方:
Future<Either<String, List<Post>>> getPostsList() async {
var url = Uri.tryParse("myUrl");
try {
var response = await http.get(url);
final List responseBody = jsonDecode(response.body);
return Right(PostsList.fromJson(responseBody).postsLists);
} catch (e) {
print(e);
return Left(ApiErrorHandling.getDioException(e));
}
}
也在这里:
List<Post> postsList = List<Post>();
getPostsList() async {
final Either<String, List<Post>> result =
await ApiServices().getPostsList();
result.fold((e) {
setErrorMessage(e);
setUiStateAndNotify(UISTATE.ERROR);
}, (f) {
postsList = f;
setUiStateAndNotify(UISTATE.SUCCESS);
});
}
我真的很困惑为什么会出现这个错误,所以我想知道为什么。谢谢
我打开了你的api结果,你感兴趣的列表位于响应正文中的“数据”键,所以把你的代码改成这样:
final List responseBody = jsonDecode(response.body)["data"];
我正在尝试使用提供程序包和 either_options 从我的 RESTAPI 中获取一些帖子,但我遇到了一些麻烦。每次我 运行 应用程序都会给我这个错误
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List'
这是提到错误的地方:
Future<Either<String, List<Post>>> getPostsList() async {
var url = Uri.tryParse("myUrl");
try {
var response = await http.get(url);
final List responseBody = jsonDecode(response.body);
return Right(PostsList.fromJson(responseBody).postsLists);
} catch (e) {
print(e);
return Left(ApiErrorHandling.getDioException(e));
}
}
也在这里:
List<Post> postsList = List<Post>();
getPostsList() async {
final Either<String, List<Post>> result =
await ApiServices().getPostsList();
result.fold((e) {
setErrorMessage(e);
setUiStateAndNotify(UISTATE.ERROR);
}, (f) {
postsList = f;
setUiStateAndNotify(UISTATE.SUCCESS);
});
}
我真的很困惑为什么会出现这个错误,所以我想知道为什么。谢谢
我打开了你的api结果,你感兴趣的列表位于响应正文中的“数据”键,所以把你的代码改成这样:
final List responseBody = jsonDecode(response.body)["data"];