我使用API作为返回JSON文件的后台。我需要使用这个JSON数据作为flutter中的下拉按钮,我收到的JSON数据就在这里。
[
{
"store": "AMAZON"
},
{
"store": "FLIPKART"
},
{
"store": "WALMART"
},
{
"store": "ALIBABA"
},
]
JSON的长度可能会随时间变化。
在Flutter中,我用这一行解码这个JSON。
stores = json.decode(response.body);
print(stores[0]['store']);
我需要知道json的长度才能在下拉按钮中使用这些数据。如果有其他方法可以直接使用json来下拉,也建议我。
您可以获得如下json的长度:
stores = json.decode(response.body);
final length = stores.length;
并获取要在下拉窗口小部件中使用的项目列表:
List<String> items = [];
stores.forEach((s)=> items.add(s["store"]));
new DropdownButton<String>(
items: items.map((String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
}).toList(),
onChanged: (_) {},
)
您总是可以通过将JSON对象通过映射来找到它的长度
stores = json.decode(response.body);
(stores as Map<String, dynamic>).length
让我知道这是否有效。
将json解码为存储后,存储就是json对象的列表,所以现在可以简单地获得存储的长度,如下所示。
stores = json.decode(response.body);
int len = stores.length;
print('length = $len');