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 .

我正在使用这样的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
    .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][预测]