#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 там?