将Dart Row对象转换为Map。 (sqlJocky)

时间:2014-05-08 22:55:18

标签: dart sqljocky

我想在我的Dart Server应用程序中获取由sqlJocky提供给我的行数据,并将其(使用列名称)转换为Map。 IE浏览器。排['电子邮件'] ==" somename"。

行数据是" _BinaryDataPacket"这是Row类型的扩展。现在,sqlJocky开发人员建议访问数据的方法涉及知道您在数据库中访问的列的名称:

row.email == "somename"

或者只是忽略列名:

row[0] == "somename"

我已经尝试了一些黑客来获取列数据,甚至编辑了原始的sqlJockey代码以获取_BinaryDataPacket._fieldIndex以使其公开。虽然这确实让我可以访问Column标题的Symbol实例来构建地图,但我希望尽可能避免修改开发人员的稳定代码。 我假设必须有一种简单的方法来获取列名称并将它们放在带有行数据的Map中。

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

由于

1 个答案:

答案 0 :(得分: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];
        }
    });
});

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