Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Google Dart删除下拉列表副本_Json_Drop Down Menu_Map_Hashmap_Dart - Fatal编程技术网

Json Google 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

我试图从地图中删除重复项以填充下拉列表。但是,我无法成功地删除它们。下拉列表填充的数据量(JSON)是实际存在数据量的两倍。如果有一个简单的方法可以做到这一点,请让我知道。另外,如果您需要更多信息,请告诉我

Dart代码:

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));
     });