Dart - 如何将 Map<String, dynamic> 转换为 Map<String, String>

Jos*_*ush 4 dart

此代码段编译成功但在运行时失败

Map<String, dynamic> queryParameters = {"id": 3};
Map<String, String> stringQueryParameters = Map<String, String>.from(queryParameters);
Run Code Online (Sandbox Code Playgroud)

未捕获的错误:TypeError:3:类型“int”不是“String”类型的子类型


Map<String, dynamic>to转换的正确方法是Map<String, String>什么?

Mat*_*tia 6

您可以使用.map来转换您的密钥:

  Map<String, dynamic> queryParameters = {"id": 3};
  Map<String, String> stringQueryParameters =
      queryParameters.map((key, value) => MapEntry(key, value?.toString()));
Run Code Online (Sandbox Code Playgroud)