Получите длину списка <dynamic>в трепетании - PullRequest
0 голосов
/ 13 октября 2019

Я работаю с JSON следующим образом:

{results: success, data: {total: 250, currentlyAvailable: 250, bestTimeToGo: 22, forecasts: [{hour: 21, available: 250}, {hour: 22, available: 24}, {hour: 23, available: 229}]}}

В более плоском виде я расшифровал этот JSON и отлил результат в MAP

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

Теперь я быхотел бы знать длину этого списка элементов "покой", иначе я не могу с ними работать.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Вы можете объявить rest как динамический, например:

dynamic rest;

Вы можете вызывать любой метод с типизированной переменной dynamic. Таким образом, вы можете получить длину rest с rest.length, если rest является списком.


Но было бы лучше проанализировать JSON в объект. Вот краткий пример:

как собрать цикл по списку из http в JSON

0 голосов
/ 13 октября 2019

Список имеет длина свойство. Таким образом, вы должны быть в состоянии сделать это:

final data = response["data"] as Map;
final forecasts = data["forecasts"];
print(forecasts.length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...