从现有 json 列表中提取唯一值以创建唯一的列表视图构建器

Posted

技术标签:

【中文标题】从现有 json 列表中提取唯一值以创建唯一的列表视图构建器【英文标题】:Extract unique values from existing json list to create unique listview builder 【发布时间】:2020-08-20 01:07:59 【问题描述】:

我有一个包含 json 解析值的列表 (userData);我想遍历列表,并剥离单个键/值对以将列表减少为一组常见值。

userData 列表包含国家和大洲的 json 解析数据。我想生成一个简化的唯一大陆列表(并使用这个简化的列表创建一个动态列表视图)。请参阅下面的侧面/抽屉代码:

drawer: Drawer(
        // Add a ListView to the drawer with unique continents
        child: ListView.builder(
          itemCount: userData == null ? 0 : userData.length,
          itemBuilder: (BuildContext context, int index) 
            for (var item in userData) 
              continents.add(userData[item]['continent']);
            
            continents.toSet().toList();

            return Container(
                width: 130,
                alignment: Alignment.center,
                child: Text(
                  "$continents[index]",  //unique continent should be here
                  style: TextStyle(
                    fontSize: 20.0,
                    fontWeight: FontWeight.w500,
                  ),
                ));
          ,
        ),
      ),

提前感谢您的帮助!

【问题讨论】:

你能添加你的用户数据吗?您面临什么问题? 感谢 Josteve。把它想象成 ``` List fruits = ['apple', 'orange', 'apple', 'pear', 'apple'];``` 我想把它简化为一个 uniqueFruits = ['apple', 'orange', 'pear'] 列表(在 ListView 小部件内)。 Miler 你遇到了什么错误? 【参考方案1】:

将大陆分配回continents.toSet().toList();

喜欢

continents = continents.toSet().toList();

【讨论】:

以上是关于从现有 json 列表中提取唯一值以创建唯一的列表视图构建器的主要内容,如果未能解决你的问题,请参考以下文章

从连接表列表中选择唯一的列名

从 Json 中选择值以添加到下拉列表

使用列表中的值以基于现有数据框创建一些新的数据框

BASEX - 从变量中获取唯一值

在bash中的字符串列表中动态提取每个字符串唯一的模式

从列表中提取值以将它们分配为 R 中的新变量