Ошибка при извлечении данных из Node.js rest api во Flutter (Mysql Localhost) - PullRequest
0 голосов
/ 29 марта 2020

ОШИБКА : Произошло исключение. _TypeError (тип «Список» не является подтипом типа «Карта»)

Future<Album> fetchAlbum() async{ 
    final response = await http.get(Uri.encodeFull("192.168.43.106:8080/customers/"),
                                    headers: { "Accept": "application/json" } );
    if (response.statusCode == 200) {
        return Album.fromJson(json.decode(response.body));
    }
    else{
        throw Exception('Failed to load Album');
    }
}
class  Album {
final int id;
final String email;
final String name;

Album({this.id, this.email, this.name});

factory Album.fromJson(Map<String, dynamic> json){
  return Album(
    id: json['id'],
    email: json['email'],
    name: json['name'],
  );
}

}

введите описание изображения здесь

1 Ответ

0 голосов
/ 30 марта 2020

Ваш ответ - это список объектов, а не один объект. Таким образом, вы должны передать [0] индекс вашего списка.

Попробуйте код ниже, он будет работать для вас.

Future<Album> fetchAlbum() async{ 
    final response = await http.get(Uri.encodeFull("192.168.43.106:8080/customers/"),
                                    headers: { "Accept": "application/json" } );
    if (response.statusCode == 200) {
        var str = jsonDecode(response.body);
        return Album.fromJson(str[0]);
    }
    else{
        throw Exception('Failed to load Album');
    }
}

class  Album {

  int id;
  String email;
  String name;

  Album({this.id, this.email, this.name});

  Album.fromJson(json)
    : id = json['id'],
      email = json['email'].toString(),
      name = json['name'].toString();

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...