0
votes

Mon code retour [Erreur: flutter / ui / ui_dart_state.cc (157)]] Exception non gérée: Tapez 'String' n'est pas un sous-type de type 'INT'

D'une manière ou d'une autre, mon code renvoie cette erreur à chaque fois que j'appelle l'API.

class Data {
  final int date;
  final String country;
  final int cases;

  Data({this.date, this.country, this.cases});

  factory Data.fromJson(Map<String, dynamic> json) {
    return Data(
        country: json['Country'],
        date: json['Date'],
        cases: json['Confirmed']);
  }
}


1 commentaires

Bon, ça marche. Merci pour la réponse. Je fais une erreur stupide. Ma faute. Merci beaucoup


3 Réponses :


1
votes

Je pense qu'il y a un problème avec la réponse de l'API. Donc, une fois, essayez de modifier votre code de classe de classe comme ci-dessous. J'espère que cela vous aidera.

 class Data {
  final String date;
  final String country;
  final int cases;

  Data({this.date, this.country, this.cases});

  factory Data.fromJson(Map<String, dynamic> json) {
 return Data(
    country: json['Country'],
    date: json['Date'],
    cases: json['Confirmed']);
 }
}


0 commentaires

1
votes

Je ne sais pas si l'API que vous utilisez a changé de format, mais la date est maintenant de type chaîne xxx

afin que vous puissiez mettre à jour votre paramètre de modèle à une chaîne xxx


0 commentaires

2
votes

Le problème est causé par le champ de date dans le modèle de données, la valeur renvoyée à partir de l'API est la chaîne et le type décrit dans le modèle de données est INT, entraînant ainsi un problème de typast, mettez à jour votre modèle de données comme suit:

class Data {
  final String date;
  final String country;
  final int cases;

  Data({this.date, this.country, this.cases});

  factory Data.fromJson(Map<String, dynamic> json) {
    return Data(
        country: json['Country'],
        date: json['Date'],
        cases: json['Confirmed']);
  }
}


0 commentaires