No estoy tanto tiempo en aleteo. Tengo el método get. tengo el error 'Lista<dinámica>' no es un subtipo del tipo 'Map<String,dynamic>'
Future<List<FineResponse>> getAll(String apiToken) async {
try {
Response response = await _dio.get(apiEndpoint + "fines",
options: Options(
headers: {
"Authorization": apiToken
}),
);
return response.data
.map<UserResponse>((el) => UserResponse.fromJson(el)).toList();
} catch (error, stacktrace) {
return null;
}
}
respuesta esperada, la hice en cartero
[
[
{
"id": 1709,
"uin": "188101772006228217193",
"user_id": 1215,
},
{
"id": 1710,
"uin": "188101772006228217194",
"user_id": 1215,
},
{
"id": 1711,
"uin": "1234567890123456789052",
"user_id": 1215,
},
{
"id": 1712,
"uin": "1234567890123456789053",
"user_id": 1215,
}
]
]
class FineResponse {
int id;
String uin;
int userId;
String comment;
String addCoin;
int statusId;
int type;
String createdAt;
String updatedAt;
FineResponse(
{this.id,
this.uin,
this.userId,
this.comment,
this.addCoin,
this.statusId,
this.type,
this.createdAt,
this.updatedAt});
FineResponse.fromJson(Map<String, dynamic> json) {
id = json['id'];
uin = json['uin'];
userId = json['user_id'];
comment = json['comment'];
addCoin = json['add_coin'];
statusId = json['status_id'];
type = json['type'];
createdAt = json['created_at'];
updatedAt = json['updated_at'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['uin'] = this.uin;
data['user_id'] = this.userId;
data['comment'] = this.comment;
data['add_coin'] = this.addCoin;
data['status_id'] = this.statusId;
data['type'] = this.type;
data['created_at'] = this.createdAt;
data['updated_at'] = this.updatedAt;
return data;
}
}
¿Qué debo cambiar en mi método get?
¿Puedes imprimir lo que devuelve Response.data si ejecutas tu código?
- quoci
19/03/2021 a las 16:00
[[{id: 1709, uin: 188101772006228217193, user_id: 1215, comentario: nulo, add_coin: 2021-03-20 17:18, status_id: 5, tipo: 2, creado_at: 2021-03-19 17: 18:42, actualizado_at: 2021-03-19 17:18:42}, {id: 1711, uin: 1234567890123456789052, user_id: 1215, comentario: nulo, add_coin: 2021-03-20 17:26, status_id: 5, tipo: 2, creado_en: 2021-03-19 17:26:04, actualizado_en: 2021-03-19 17:26:04}]]
- morris
19/03/2021 a las 16:05
1
¿Entonces realmente tienes una Lista<List<Map<String,dynamic>>?
- quoci
19/03/2021 a las 16:08
Sí, tengo List<List<Map<String,dynamic>>
- morris
19/03/2021 a las 16:12
¿Puedes agregar tu clase UserResponse?
- quoci
19/03/2021 a las 16:16
------------------------------------
Dado que su respuesta.data devuelve un List<List<Map<String,dynamic>> necesita crear una Lista<List<FineResponse>> si quieres el mismo resultado que en Postman.
final List<List<FineResponse>> fineResponses =
response.data.map((firstList) =>
firstList.map((data) =>
FineResponse.fromJson(data)
).toList()
).toList()
------------------------------------
Creo que esta no es una respuesta JSON válida.
Por favor revisa tu respuesta aquí
Verifique la respuesta JSON
1
Sí, no es válido debido a la coma al final
- quoci
19/03/2021 a las 16:49