Json Google Dart删除下拉列表副本
我试图从地图中删除重复项以填充下拉列表。但是,我无法成功地删除它们。下拉列表填充的数据量(JSON)是实际存在数据量的两倍。如果有一个简单的方法可以做到这一点,请让我知道。另外,如果您需要更多信息,请告诉我 Dart代码:Json Google Dart删除下拉列表副本,json,drop-down-menu,map,hashmap,dart,Json,Drop Down Menu,Map,Hashmap,Dart,我试图从地图中删除重复项以填充下拉列表。但是,我无法成功地删除它们。下拉列表填充的数据量(JSON)是实际存在数据量的两倍。如果有一个简单的方法可以做到这一点,请让我知道。另外,如果您需要更多信息,请告诉我 Dart代码: var jsonString = response; //var dropDownValue = shroot.querySelector("#asset"); SelectElement dropDown = shroot.querySelector("#ass
var jsonString = response;
//var dropDownValue = shroot.querySelector("#asset");
SelectElement dropDown = shroot.querySelector("#asset");
Map jsonObject = JSON.decode(jsonString) as Map;
dropDownList = jsonObject["eee"] as List<Map>;
LinkedHashMap<String, Map> dataMap = new LinkedHashMap<String, Map>();
for(Map d in dropDownList)
{
dropDown.children.add(new OptionElement(data: d['displayName'], value: d['displayName']));
print(d);
print(d["id"]);
print(d["displayName"]);
}
目前还不完全清楚您的数据是什么样子的,但我想您可能需要这样的数据
void main(){
//为了缩短这里的代码,我从JSON中删除了对处理没有任何影响的元素。
var值={
“serviceResponseValue”:[
{“displayName”:“name”},
{“displayName”:“name”},
{“displayName”:“name1”},
{“displayName”:“进程”}
],
“消息”:{“消息”:[]}
};
var ddValues=值['serviceResponseValue']
//提取“displayValue”
.map((e)=>e['displayName'])
//创建一个集合以消除重复项
.toSet().toList()
//排序结果
//排序更改它调用的列表-它不返回新列表
//因此,我们必须使用“…”而不是“…”来链接它`
…排序();
ddValues.forEach((e){
印刷品(e);
//dropDown.children.add(新的OptionElement(数据:e,值:e));
});
}
Yes在这里工作正常。我获取了您的代码和JSON并运行它。输出为进程名称1
var ddValues = dropDownList
// extract the 'displayValue'
.map((e) => e['displayName'])
// create a set to eliminate duplicates
.toSet().toList()
// sort the result
// sort changes the list it is called - it doesn't return a new list
// therefore we have to chain it using `..` instead of `.`
..sort();
ddValues.forEach((e) {
print(e);
dropDown.children.add(new OptionElement(data: e, value: e));
});