所以基本上我有2个List<Object>
:
List<Feed> feeList
和List<Comment> commentList
然后,当我启动应用程序时,我会自动调用该方法以从我的API中获取数据,以填充主要的List
,即List<Feed> feeList
。
我的目标是填充这2个列表,这样我就不必调用另一个API即可填充另一个列表,即List<Comment> commentList
。
因此,我进行了实验并添加了commentList = data['comments']
.map<Comment>((json) => Comment.fromJson(json))
.toList();
调试时,我做了print(res.body);
,然后对某个索引的响应冻结。
真的有可能吗?
这是我的代码:
Future<List<Feed>> getFeedAll() async {
var res = await http.get(
Uri.encodeFull(APIServices.httpDomain + APIServices.postGetAll),
headers: {"Authorization": "Bearer " + Constants.token});
if (res.statusCode == 200) {
var data = json.decode(res.body);
print("$data");
feedList = data.map<Feed>((json) => Feed.fromJson(json)).toList();
commentList = data['comments']
.map<Comment>((json) => Comment.fromJson(json))
.toList();
}
print(res.body);
return feedList;
}
答案 0 :(得分:0)
您很可能在模型类中缺少一些null验证。在不知道您的模型的情况下,我假设您有可能为空的列表,因此响应中缺少该列表:
在模型中寻找cast
并处理null
值:
例如:
mystringlist= json['mystringlist'].cast<String>();
更改为:
mystringlist = json['mystringlist'] != null
? json['mystringlist'].cast<String>()
: List<String>();