Json 获取颤振中列表的长度
我正在使用这样的JSON:Json 获取颤振中列表的长度,json,list,dictionary,flutter,dart,Json,List,Dictionary,Flutter,Dart,我正在使用这样的JSON: {results: success, data: {total: 250, currentlyAvailable: 250, bestTimeToGo: 22, forecasts: [{hour: 21, available: 250}, {hour: 22, available: 24}, {hour: 23, available: 229}]}} 在Fatter中,我解码了这个JSON,并将结果投射到地图中 var res = await http .
{results: success, data: {total: 250, currentlyAvailable: 250, bestTimeToGo: 22, forecasts: [{hour: 21, available: 250}, {hour: 22, available: 24}, {hour: 23, available: 229}]}}
在Fatter中,我解码了这个JSON,并将结果投射到地图中
var res = await http
.get(Uri.encodeFull(link), headers: {"Accept": "application/json"});
if (res.statusCode == 200) {
var data = json.decode(res.body);
rest = data["data"] as Map;
rest = rest["forecasts"]; //I have to work only with the "forecasts" section of the JSON
现在,我想知道rest元素列表的长度,否则我无法使用它们
有什么想法吗?列表具有属性。因此,您应该能够做到这一点:
final data = response["data"] as Map;
final forecasts = data["forecasts"];
print(forecasts.length);
您可以将rest声明为动态,如下所示:
dynamic rest;
可以对动态类型变量调用任何方法。所以你可以通过rest.length得到rest的长度,如果rest是一个列表
但最好将JSON解析为一个对象。这里有一个简单的例子:
不,我已经尝试过了,它没有声明为list,它不是list而是map,如果我尝试使用此方法获取长度,我将得到以下错误:NoSuchMethodError:类“\u InternalLinkedHashMap”没有实例获取程序“Length”。您真的需要重用rest变量吗?我更新了我的答案…为什么这应该给我一个解决方案?这是一个变量,所以我认为它是一样的,但我更新了我的代码,它仍然不起作用:类型“\u InternalLinkedHashMap”不是类型cast中类型“List”的子类型尝试直接将预测分配给rest,而不在之前将映射分配给rest,如:rest=data[data][预测]