如何获取某些值的值作为类型<String>,它位于 Dart/Flutter 中 List 内的 Map 内?

Posted

技术标签:

【中文标题】如何获取某些值的值作为类型<String>,它位于 Dart/Flutter 中 List 内的 Map 内?【英文标题】:how to get values of some values as type<String> which is inside a Map inside List in Dart/Flutter? 【发布时间】:2022-01-06 23:23:36 【问题描述】:

我正在尝试在我从 API 中提取的键值对中提取键值等于名称的值。我正在使用以下公式;

final List<String> namesList =list.map((e) => e["Name"].toString()).toList();
print(namesList);

我可以提取名称键的值,但是它被提取为 JSArray。我无法将它们提取为字符串。

结果:[Name1,Name2] JSArray 应该是:["Name1", "Name2"] 列表

谢谢。

【问题讨论】:

【参考方案1】:

请参考以下代码

void main() 
  List list = [
    "code": "ABC", "Name": "\"Name1\"", "Type": "1",
    "code": "DEF", "Name": "\"Name2\"", "Type": "2"
  ];

  final List<String> nameList = list.map((e) => e["Name"].toString()).toList();

  print(nameList);
  
  List list1 = [
    "code": "ABC", "Name": "Name1", "Type": "1",
    "code": "DEF", "Name": "Name2", "Type": "2"
  ];

  final List<String> nameList1 =
      list1.map((e) =>   '"$e["Name"].toString()"').toList();
  print(nameList1);


// Result
// ["Name1", "Name2"]


【讨论】:

感谢您的回复。我理解代码,但是当我制作“print(nameList1.runtype);”时,它仍然显示 JSArray。为什么显示的是 JSArray 而不是 List?这很重要,因为我使用的是 searchfield 包,而这个包只接受 List.【参考方案2】:

nameList元素类型好像是String。 仅显示“打印”结果,去掉双引号。

或者你真的想用双引号做一个列表。

void main() 
  List list = ['Code': 'ABC', 'Name': 'Name1', 'Type': '1', 'Code': 'DEF', 'Name': 'Name1', 'Type': '2'];
final List<String> namesList =list.map<String>((e) => "\"$e["Name"]\"").toList();
print(namesList);
print(namesList[0].runtimeType);


【讨论】:

感谢您的回复。我理解代码,但是当我制作“print(namesList.runtype);”时,它仍然显示 JSArray。为什么显示的是 JSArray 而不是 List?这很重要,因为我使用的是 searchfield 包,而这个包只接受 List. 我认为 nameList 是一个 'List' 类型。但是像这样的飞镖打印。当我使用 dartpad 颤振运行而不是 dart 模式进行测试时,runtimeType 是 'List 非常感谢。阵列似乎没有问题。我猜我的问题不一样。

以上是关于如何获取某些值的值作为类型<String>,它位于 Dart/Flutter 中 List 内的 Map 内?的主要内容,如果未能解决你的问题,请参考以下文章

新版POI如何获取日期类型的cell的值

如何在不实际替换代码中的值的情况下获取与某些坐标对应的函数值?

如何获取打字稿记录中的值的键

如何更改 Ext js 组合框中某些值的索引

String作为输出型参数时获取不到值

使用了 unnest(),但仍然无法访问类型为 ARRAY<STRUCT<text STRING, language STRING>> 的值的字段文本,大查询