【发布时间】:2023-04-03 06:20:02
【问题描述】:
我正在从 API 获取数据,并尝试将这些数据推送到两个变量中。我可以访问返回的部分数据,但不能访问全部,我可以打印所有数据,但是当我尝试访问其中的特定部分时,它不起作用。
例如: res = 来自 API 的响应
print(res.data); // This works
print(res.feeds); // This doesn't work
print(res.feeds.id); // This doesn't work
我得到的错误是:
'Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<FeedItem>'
这就是我转换和读取数据的方式:
class FeedData {
String data;
List<FeedItem> feeds;
FeedData({this.data, this.feeds});
factory FeedData.fromJson(Map<String, dynamic> json) {
return FeedData(
data: json['data'],
feeds: json['feeds'],
);
}
}
我可以读取和访问“数据”,但不能读取和访问“提要”,这是我的问题,我需要能够访问“提要”中的数据 'FeedItem' 类的构建方式与 'FeedData' 类相同,所以我确信它是正确构建的
这就是我调用数据的方式:
getUserFeed() async {
FeedData res = FeedData.fromJson(
await requests.get(url: 'feeds/u?u=jxchumber&PageNumber=1'));
print(res.data);
// res.data works
print(res.feeds);
// res.feeds doesn't work
}
这是从 API 返回的数据:
{
"data": "default",
"feeds": [
{
"id": 2,
"photoUrl": "https://cartalkio-image-storage-dev.s3.eu-west-2.amazonaws.com/o85DvOaTXXE.jpg",
"description": "Magna duis consectetur sit ut commodo non eiusmod.",
"dateAdded": "0001-01-01T00:00:00",
"isMain": false,
"publicId": null,
"isImage": true,
"mainImage": "https://randomuser.me/api/portraits/men/76.jpg",
"userId": 9,
"likers": null,
"username": "Larsen",
"thumbnail": null,
"likes": 0
},
{
"id": 4,
"photoUrl": "https://cartalkio-image-storage-dev.s3.eu-west-2.amazonaws.com/lXR833PRh3g.jpg",
"description": "Magna duis consectetur sit ut commodo non eiusmod.",
"dateAdded": "0001-01-01T00:00:00",
"isMain": false,
"publicId": null,
"isImage": true,
"mainImage": "https://randomuser.me/api/portraits/men/4.jpg",
"userId": 8,
"likers": null,
"username": "Lloyd",
"thumbnail": null,
"likes": 0
},
}
【问题讨论】: