2

Dart Server アプリケーションで sqlJocky から提供された行データを取得し、(列名を使用して) マップに変換したいと考えています。すなわち。行['メール'] == "誰か".

行データは、Row 型を拡張した「_BinaryDataPacket」です。現在、データにアクセスするために sqlJocky 開発者が推奨する方法には、データベースでアクセスするものの列名を知ることが含まれます。

row.email == "somename"

または、列名をすべて一緒に無視するだけです:

row[0] == "somename"

列データを取得するためにいくつかのハックを試み、元の sqlJockey コードを編集して _BinaryDataPacket._fieldIndex を取得し、公開しました。これにより、列タイトルの 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 に答える