在过去的两个小时中,我一直在围绕这个问题进行研究(请记住,我是Flutter的新手)。我正在尝试检查是否已正确设置所有内容以从OMDB获取电影列表。除了我不知道如何访问列表中的内容外,其他一切似乎都还可以。 originalTitle。
这是模型:
class MovieItem {
int page;
int totalResults;
int totalPages;
List<Results> results;
MovieItem({this.page, this.totalResults, this.totalPages, this.results});
MovieItem.fromJson(Map<String, dynamic> json) {
page = json['page'];
totalResults = json['total_results'];
totalPages = json['total_pages'];
if (json['results'] != null) {
results = new List<Results>();
json['results'].forEach((v) {
results.add(new Results.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['page'] = this.page;
data['total_results'] = this.totalResults;
data['total_pages'] = this.totalPages;
if (this.results != null) {
data['results'] = this.results.map((v) => v.toJson()).toList();
}
return data;
}
}
class Results {
String posterPath;
int id;
String originalLanguage;
String originalTitle;
String title;
Results(
{this.posterPath,
this.id,
this.originalLanguage,
this.originalTitle,
this.title,});
Results.fromJson(Map<String, dynamic> json) {
posterPath = json['poster_path'];
id = json['id'];
originalLanguage = json['original_language'];
originalTitle = json['original_title'];
title = json['title'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['poster_path'] = this.posterPath;
data['id'] = this.id;
data['original_language'] = this.originalLanguage;
data['original_title'] = this.originalTitle;
data['title'] = this.title;
return data;
}
}
您正在尝试在List<Result>
而不是Result
上调用属性。您尝试访问的属性存在于Result
上...如果List
个对象存在Result
,那么您期望movieItem.results.originalTitle
返回什么?可以有多少个Result
对象,其标题可能不同?如果您只想将它们全部打印出来:
Future<MovieItem> movieItem() async {
var movieItem = await
client.movieItem();
movieItem.results.forEach((result) => print(result.originalTitle));
return movieItem;
}
forEach
将允许您调用属性并将其打印在列表中的每个结果上
您的movieItem模型类具有结果对象的列表。因此,当您调用client.movieItem方法时,您将获得一个MovieItem对象,并且您想打印特定的结果项,然后执行此操作
print(movieItem.results[0].originalTitle)
并且如果要访问结果列表中的所有对象,则可以使用for循环来实现它
for(int i=0;i<movieItem.results.length;i++)
{
print(movieItem.results[i].originalTitle);
}
为公平起见,元用户的主要任务与原始任务紧密相关,原始任务是创建每个编程问题的详细答案库。