如何在 flutter 中使用 Future<String> 方法返回的字符串?

How to use a String returned by a Future<String> method in flutter?

我正在尝试使用以下方法读取 json 文件的组件:

import 'dart:io';

class CharacterDataReader {
  Future<String> read() async {
    final file = File('assets/data/character_data.json');

    String data = await file.readAsString();

    return data;
  }
}

现在,我正在尝试将读取的值分配给一个名为 data 的字符串,并在另一个 class 中 json.decode() 使用以下代码:


Future<String> data = CharacterDataReader().read();
Map<String, dynamic> characterData = json.decode(data);

但是,这不起作用,因为 json.decode() 只接受字符串作为参数。因此,有人可以告诉我如何将这个 Future 转换为实际的字符串吗?

因为它是未来,你必须添加 await 关键字

String data= await CharacterDataReader().read();

查看 asynchronous programming

上的 dart 官方文档