2

我想在我的 Dart Server 应用程序中获取 sqlJocky 给我的行数据,并将其(使用列名)转换为 Map。IE。行['email'] == "somename"。

行数据是“_BinaryDataPacket”,它是 Row 类型的扩展。现在 sqlJocky 开发人员推荐的访问数据的方法包括知道您在数据库中访问的列名:

row.email == "somename"

或者只是一起忽略列名:

row[0] == "somename"

我尝试了一些技巧来获取列数据,甚至编辑了原始的 sqlJockey 代码以获取 _BinaryDataPacket._fieldIndex 以将其公开。虽然这确实让我可以访问 Column 标题的 Symbol 实例来构建地图,但我想尽可能避免修改开发人员的稳定代码。我认为必须有一种简单的方法来获取列名并将它们与行数据一起放入 Map 中。

TLDR:我想将 alpha.brava == "charle" 转换为 alpha["bravo"] == "charle"。

谢谢

4

1 回答 1

5

在您的结果中,您有一个字段列表属性。

所以你可以这样做:

.then((Results results) {
    results.forEach((Row row) {
        Map r = new Map();
        for(int i=0; i<results.fields.length; i++) {
            r[results.fields[i].name] = row[i];
        }
    });
});

这会将数据从一行映射到地图

于 2014-05-23T17:26:39.673 回答