Как использовать данные списка, возвращаемые из вызова API

#flutter #flutter-dependencies

#flutter #flutter-зависимости

Вопрос:

Я пытаюсь вернуть список данных из вызова API и отправить этот список данных в локальную базу данных sqlite, которую я создал для нее. У меня проблема с данными типа <List>, и я не уверен, как преобразовать их во что-то полезное. Я просто пытаюсь присвоить эти данные из вызова api переменной, чтобы я мог просто отправить их в базу данных sqlite. Любые советы приветствуются! Спасибо!

Это код, в котором я пытаюсь получить эти данные из вызова API и отправить их в базу данных sqlite.

 if(user.success) {
  Quarter quarters;
  quarters = await getQuarters();
  QuarterDBProvider.quarterDB.newQuarter(quarters);
}
  

Именно здесь выполняется вызов API

 Map data;

List<Quarter> quarterFromJson(String str) =>
    List<Quarter>.from(json.decode(str).map((x) => Quarter.fromJson(x)));

Future<List<Quarter>> getQuarters() async {
  final http.Response response = await http.get(
    'https://myfakeapi/quarters',
  );
  if (response.statusCode < 400) {
    return quarterFromJson(response.body);
  } else {
    throw Exception('Failed to get quarters');
  }
}
  

Комментарии:

1. после вызова функции вызова API. Затем используйте forEach() и добавляйте каждый элемент в базу данных SQLLite. В вашем случае это было бы quaters.foreach((index)=> QuarterDBProvider.quarterDB.newQuarter(quarters[index]));

2. попробуйте добавить .toList() после .map()

Ответ №1:

ответ от api — это список, а не строка.

 List<Quarter> _listQuarter= [];
var json = jsonDecode(response.body) as List<dynamic>;
    json.forEach((element) {
        _listQuarter.add(   -do all your workaround-   );
    });
return _listQuarter;
  

Комментарии:

1. Что вы имеете в виду в «сделать все мои обходные пути»? Добавить его в мою базу данных sqlite там?