json - 如何根据其他下拉选项加载本地Json到Flutter DropDown?

标签 json list dart flutter dropdown

我有一个本地 json 文件,根据公司名称和/或分支名称,我需要将它们加载到 Flutter 的 2 个不同的下拉列表中。

1) 公司下拉菜单: 它将包含/显示带有公司代码的公司名称列表,例如;

示例:A公司(01)

2) 分支下拉菜单: 它将包含/显示基于所选公司名称的 BranchName 和 BranchCode 列表;

示例:第一分支 (0001)

我的问题是我可以加载本地 Json 文件并添加到 Map,但如何添加到列表以便可以在 Flutter 中加载下拉列表?

{  
   "branch":[  
      {  
         "companyCode”:”01”,
         "companyName”:”Comapmy A”,
         "branchCode”:”0001”,
         "branchName”:”First Branch“
      },
      {  
         "companyCode”:”01",
         "companyName”:”Company A”,
         "branchCode”:”0002”,
         "branchName”:”Second Branch”
      },
      {  
         "companyCode”:”02”,
         "companyName”:”Company B”,
         "branchCode”:”0001”,
         "branchName”:”First Branch”
      }
   ]
}


String jsonCompany = await rootBundle.loadString("packages/capi/company.json");
Map _mapCompnay = jsonDecode(jsonCompany);

最佳答案

这里有 json 对象:

Map _mapCompany = jsonDecode(jsonCompany);

接下来,从 branch 对象获取数组:

List list = _mapCompany["branch"]; 

就这样,现在您可以使用列表来填充 DropDown:

        DropdownButton<String>(
                      items:list.map((Map val){
                        return DropdownMenuItem<String>(
                          value: val["companyCode"],
                          child: new Text(val["companyName"]),
                        );
                      }).toList(),
                      ...

关于json - 如何根据其他下拉选项加载本地Json到Flutter DropDown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53870728/

相关文章:

javascript - 如何访问 JSON 对象的子对象?

list - 具有某些确定性的 member/2 代码

Dart:如何有效地初始化依赖于相同计算的多个最终字段?

dart - 如何从运行时类型 (Type) 转到绑定(bind)类型参数 (T)?

dart - 在Dart中的命名空间中创建元素

json - Cypher - 将图形结果转换为列表或 JSON

javascript - 如何将2个数组复制到1个数组中?

C程序: Write to and from binary files not working?

javascript - 如何将一个包含数组的对象拆分为多个对象

javascript - 在 javascript 中访问 JSONArrays