You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Dart/Flutter中从Map提取货币代码至列表

提取Map中的货币代码生成目标列表

假设你的currencyMap已经按Dart语法规范定义(注意字符串类型的键必须添加引号),可以通过以下方式提取出目标格式的currencyList:

完整实现代码

// 先修正原Map的语法问题,Dart中字符串键需加引号
Map<String, dynamic> currencyMap = {
  'status': 'Success',
  'currency': [
    {'id': 1, 'code': 'AFN', 'currency': 'Afghan afghani', 'rate': 0.25},
    {'id': 2, 'code': 'EUR', 'currency': 'European euro', 'rate': 0.25},
    {'id': 3, 'code': 'CFA', 'currency': 'Franc CFA', 'rate': 0.25}
  ]
};

// 提取code字段生成列表
List<String> currencyList = (currencyMap['currency'] as List<Map<String, dynamic>>)
    .map((item) => item['code'] as String)
    .toList();

// 输出结果:[AFN, EUR, CFA]
print(currencyList);

分步说明

  1. 类型转换:先将currencyMap['currency']转换为List<Map<String, dynamic>>类型,确保可以遍历数组内的每个货币对象。
  2. 提取字段:使用map方法遍历数组,取出每个对象中的code值。
  3. 转成List:通过toList()将map返回的迭代器转换为标准List类型。

容错处理(可选)

如果currencyMap或currency字段可能为空,建议添加空值判断避免运行时错误:

List<String> currencyList = [];
if (currencyMap.containsKey('currency') && currencyMap['currency'] is List) {
  currencyList = (currencyMap['currency'] as List<Map<String, dynamic>>)
      .map((item) => item['code'] as String)
      .toList();
}

内容的提问来源于stack exchange,提问作者Mbebwo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:12:35