#json #flutter #dart #utf-8 #dio
Вопрос:
Я использую фреймворк flutter с пакетами http и Dio. В моем REST API мне нравится этот массив данных:
[
{
"id": 1,
"title": "Абрикос",
"description": null,
"status": "inactive",
"crop_type_id": 1,
"user_id": null,
"admin_id": null,
"created_at": null,
"updated_at": null
}
]
Dart может декодировать от 1 до 260 подобных элементов массива без каких-либо ошибок. Но когда я отправляю более 260 элементов массива, я получаю сообщение об ошибке:
I/flutter (11048): Unexpected character
E/flutter (11048): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Exception: Unexpected character
Но когда я пытаюсь декодировать подобные элементы с помощью веб—сайта DartPad, то получаю успешно декодированные элементы.
Вот мой код с пакетом Dio:
Future get(String url) async {
Response response = await dio.get(
url,
options: Options(
responseType: ResponseType.plain
)
);
JsonCodec codec = new JsonCodec();
if (response.data.isNotEmpty) {
return codec.decode(response.data);
}
}
Это мой пример запроса с пакетом http:
http.Response response = await http.get(url,headers: {'Content-Type': 'application/json'});
List<dynamic> responseJson = json.decode(utf8.decode(response.bodyBytes));
Вот пример того, как я вызываю запрос в своем приложении flutter:
Future getCategories() async {
return await apiDataService.getSeedlings();
}
@override
void initState() {
WidgetsBinding.instance.addPostFrameCallback((_) async {
await getCategories();
});
super.initState();
}
У меня ошибка в коде или я должен настроить flutter для приема длинных данных ответа от API?