如何获取某些值的值作为类型<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);”时,它仍然显示 JSArraynameList元素类型好像是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以上是关于如何获取某些值的值作为类型<String>,它位于 Dart/Flutter 中 List 内的 Map 内?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不实际替换代码中的值的情况下获取与某些坐标对应的函数值?
使用了 unnest(),但仍然无法访问类型为 ARRAY<STRUCT<text STRING, language STRING>> 的值的字段文本,大查询