Я получил ответ, полученный от запроса API, который я декодировал в объект JSON. При попытке преобразовать этот объект Json в мой класс, содержащий список объектов, я сталкиваюсь со следующей ошибкой:
"Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>'".
Я понимаю значение ошибки, но не могу найти ее решение. Ресурсы на эту конкретную вещь в Dart довольно ограничены.
Я несколько раз пытался переписать свой метод fromJson
, но продолжаю сталкиваться с той же ошибкой.
Ниже мой класс UserList , в который я пытаюсь преобразовать объект Json.
class UserList {
final List<UserObject> users;
UserList({
this.users,
});
addUser(UserObject user){
users.add(user);
}
factory UserList.fromJson(List<dynamic> parsedJson) {
List<UserObject> users = new List<UserObject>();
users = parsedJson.map((i)=>UserObject.fromJson(i)).toList();
return new UserList(
users: users
);
}
Map<String, dynamic> itemToJson() {
return <String, dynamic>{
'UserVal': this.users,
};
}
}
И вот где я вызываю метод fromJson:
UserList list = UserList.fromJson(userVal);
userVal равно следующему:
{UserVal: [{UID: test, Email: test@gmail.com, Phone: 1110001111, Name: Test1}, {UID: test, Email: test@gmail.com, Phone: 1110001111, Name: Test2}, {UID: test, Email: test@gmail.com, Phone: 1110001111, Name: Test3}, {UID: test, Email: test, Phone: 1110001111, Name: test4}]}
Вывод, который я ищу, должен иметь законченный объект, который мой метод может затем вернуть и использовать. Тем не менее, это прерывает при вызове этого метода.