从通话中获取地图结果列表

时间:2020-10-27 21:07:29

标签: flutter dart

我从我的NoSql数据库中收到以下响应。
它是InternalLinkedHashMap类型。

    // key       // value
{
    "42514738" : "iohuahges",
    "25498724" : "hiuasfhyd",
    "24257+62" : "opiasurj",
    "35842942" : "ftysadyg",
    "98472442" : "iouyaerj"
}

我想使用这些值来构造ListView。

但是以上不是列表,我将无法提前知道上图中的键。
因此,即使下面的方法可行(下面的String赋值),我也无法在运行时执行该操作,因为我不知道键是什么。

如何从上述结果中获取索引?

FutureBuilder(
    future: methodReturningAboveMap(),
    builder: (context, snapshot) {
        return ListView.builder(
            itemCount: snapshot.data.length,
            itemBuilder: (context, index) {
                // want to use index something like snapshot.data['collection'][0] and get get first key value and so on. 
                String s = snapshot.data['collection']['42514738']; // will work but can't do it as mentioned above 
            },
        );
    },
),

1 个答案:

答案 0 :(得分:1)

您可以提取数据并将其转换为Map (出于类型安全的考虑)

Map<String, dynamic> data = snapshot.data['collection'];

然后在ListView中,您可以通过使用

获取索引
String key = data.keys.elementAt(index);

然后使用

访问其值
String value = data[key];