【发布时间】:2021-06-24 03:34:35
【问题描述】:
背景
我有以下通过异步请求远程检索的 JSON 数据,我正在尝试在 Flutter 中构建列表视图。
如您所见,第一项是“登录”,这与所有其他项完全不同
当我尝试从数据中构建列表视图时,我在颤振中遇到了很多麻烦(我是一个完全颤抖的菜鸟 --> 这是第 0 天)。
[
{
"loggedin": "0"
},
{
"id": "1",
"title": "Title 1",
"excerpt": "",
"thumb": "Image 1.jpg",
"threadid": "1",
"fid": "1",
"commentcount": "1",
"postdate": 1
}, {
"id": "2",
"title": "Title 2",
"excerpt": "",
"thumb": "Image 2.jpg",
"threadid": "2",
"fid": "2",
"commentcount": "2",
"postdate": 2
}, {
"id": "3",
"title": "Title 3",
"excerpt": "",
"thumb": "Image3.jpg",
"threadid": "3",
"fid": "3",
"commentcount": "3",
"postdate": 3
}
]
我的概念解决方案
我正在考虑删除第一个登录的项目并形成一个只有项目 1-3 的全新 Json 数组
我的问题
是否可以遍历解码后的json数据,形成一个新的数组?
我可以成功访问列表中的单个项目,如下所示:
_map = json.decode(response.body)[1];
但是当我尝试遍历我的列表时它失败了
final decoded = json.decode(response.body) as dynamic;
decoded.forEach((key, value) {
if (key != "loggedin") {
debugPrint('hi');
}
});
如果我尝试只遍历其中一项,那么它确实有效:
final decoded = json.decode(response.body)[1] as dynamic;
decoded.forEach((key, value) {
debugPrint(key+': '+value);
});
我需要遍历我的列表作为起点,以挑选出我想从最终列表中删除的项目(基本上是键为“loggedin”的项目,但我在这里失败了
替代方案
我意识到我的方法的概念很可能存在缺陷或乏味。如果有任何其他替代方法可以实现我的目标似乎更好,我会全神贯注! :)
【问题讨论】:
-
@Pythony 当我尝试迭代整个列表时,我收到了这个错误:type '(dynamic,dynamic) => Null' is not a subtype of '(dynamic) => dynamic' of 'f'