【问题标题】:Dart - how to convert Map<String, dynamic> to Map<String, String>Dart - 如何将 Map<String, dynamic> 转换为 Map<String, String>
【发布时间】:2020-05-23 16:43:34
【问题描述】:

这个sn-p编译成功但运行时失败

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

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


Map&lt;String, dynamic&gt; 转换为Map&lt;String, String&gt; 的正确方法是什么?

【问题讨论】:

    标签: dart


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      循环所有项目,调用.toString()并将结果存储为新值

      Map<String, dynamic> queryParameters = {"id": 3, "name": null};
      Map<String, String> stringQueryParameters = Map<String, String>();
      queryParameters.forEach((key, value) => stringQueryParameters[key] = value?.toString());
      
      // ...
      

      【讨论】:

        猜你喜欢
        • 2020-01-10
        • 1970-01-01
        • 2022-11-12
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 2021-03-25
        • 1970-01-01
        • 2013-05-24
        相关资源
        最近更新 更多