如何在 Dart Flutter 的字典数组中获取某些键的值?

Posted

技术标签:

【中文标题】如何在 Dart Flutter 的字典数组中获取某些键的值?【英文标题】:how to get values of the some keys in Array of Dictionary in Dart Flutter? 【发布时间】:2021-07-16 13:49:19 【问题描述】:

我有一个字典数组,其中字典包含许多键值,我只希望一个键值在一个数组中我不想循环使用 for 循环抛出它我想要一些映射但我不知道为什么它会告诉我错误

这里有一个例子

static final myDictionary = [

  "id": 1,
  "name": "Alex",
  "field_of_work": "HR",
  "description": ""
,

  "id": 2,
  "name": "Jack",
  "field_of_work": "CEO",
  "description": ""
,

  "id": 3,
  "name": "Eric",
  "field_of_work": "Worker",
  "description": ""
,

  "id": 4,
  "name": "Sam",
  "field_of_work": "Computer",
  "description": ""
,
"id": 5, "name": "Michael", "field_of_work": "Others", "description": ""
];

我希望我的清单是这样的

['Alex','Jack','Eric','Sam','Michael']

所以这是我写的但不起作用的代码(实际上不编译)

myDictionary.asMap().values['name'].toList()

这是错误

The operator '[]' isn't defined for the type 'Iterable<Map<String, Object>>'.

尝试定义运算符'[]'

【问题讨论】:

【参考方案1】:

这样试试

 final List<String> namesList = myDictionary.map((e) => e["name"].toString()).toList();

【讨论】:

请不要写List作为类型。您正在从toList 中删除结果的泛型类型,这使其成为List&lt;dynamic&gt;。请改用List&lt;String&gt;varfinal 现在它工作了,但现在我需要检查相同的数组并返回该数组中项目的索引 我没听懂你的意思,你能解释一下吗 我做到了?它是 .indexOf() 来获取这个字符串数组中元素的索引

以上是关于如何在 Dart Flutter 的字典数组中获取某些键的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用键路径从嵌套的字典dart中获取值。

FlutterDart的数据类型list&Map(数组和字典)

如何在 dart/flutter 中解码 json 数组?

Flutter基础组件06Image

Flutter基础组件06Image

Flutter基础组件03Scaffold