Как проверить [], когда ответ сервера дрожит?
Как проверить []
когда ответ сервера в Flutter
?
{
"Status": true,
"Data": []
}
Если "Данные" имеют значение, он вернет следующее
{
"Status": true,
"Data": {
"id": "123",
"pass": "456"
}
}
я использую dio
для запроса API.
1 ответ
Вы можете рассматривать значение своего свойства данных как dynamic
и на основе типа данных решить, как подойти к синтаксическому анализу. Допустим, у вас есть модель класса A со свойствами:
class Order {
final String status;
final dynamic data;
Order({this.status, this.data});
factory Order.fromJson(Map<String, dynamic> json) => Brand(
status: json['Status'],
data: json['Data'],
);
}
После успешного синтаксического анализа ответа вы можете либо расширить этот класс модели, либо проанализировать различные свойства (дополнительные), чтобы они содержали список, объекты или объект. Если вам нужно проверить тип объекта, вы можете сделать это:
if (order.data is List) {
// Code that handles JSON list response
} else if (order.data is Map<String, dynamic>) {
// Code that handles JSON object response
}