Как вызывать объекты из вложенных массивов - PullRequest
0 голосов
/ 26 мая 2020

Я хочу использовать publi c [api] для личного проекта. Это фрагмент полного набора данных json.

"Countries": [
    {
      "Country": "ALA Aland Islands",
      "CountryCode": "AX",
      "Slug": "ala-aland-islands",
      "NewConfirmed": 0,
      "TotalConfirmed": 0,
      "NewDeaths": 0,
      "TotalDeaths": 0,
      "NewRecovered": 0,
      "TotalRecovered": 0,
      "Date": "2020-04-05T06:37:00Z"
    },

Я пытался получить доступ к объекту в массиве, я даже попробовал несколько ответов, которые видел здесь, но у меня это не работает, либо я продолжаю получать экран «загрузка данных ...», либо Получаю белый экран без ошибок. Мой фрагмент кода ниже

class CountriesData {
  String country;
  String countryCode;
  int confirmed;
  int deaths;
  int recovered;
  int active;
  DateTime date;

  CountriesData(this.country, this.countryCode, this.confirmed, this.deaths, 
      this.recovered, this.active, this.date);

  CountriesData.json(Map<String, dynamic> json) {
    country = json['Country'];
    countryCode = json['CountryCode'];
    confirmed = json['Confirmed'];
    deaths = json['Deaths'];
    recovered = json['Recovered'];
    active = json['Active'];
    date = DateTime.parse(json['Date']);
  }
}

1 Ответ

1 голос
/ 26 мая 2020

Похоже, вы никогда не разбирали JSON. Чтобы использовать значения из JSON, вам необходимо сначала преобразовать в Map. Вам необходимо импортировать библиотеку dart:convert, а затем вы можете использовать функцию json.decode(jsonData). Это возвращает карту, которую можно использовать для извлечения данных.

var jsonData = fetchJson();
var parsedJson = json.decode(jsonData);
var x = CountriesData.json(parsedJson);
...