Flutter 错误:应为“String”类型的值,但得到“int”类型的值

时间:2021-07-01 13:22:50

标签: flutter flutter-web

这是我的 userdata.dart

 class UserData{
 late String name;
 late String age;

 UserData({
   this.name = "",
   this.age = "",
 });

 factory UserData.fromJson(Map<String, dynamic> parsedJson) {
   return new UserData(
     name: parsedJson['Name'],
     age: parsedJson['Age'],
   );
 }

provider.dart:


  Future getPatient(
      String uId, BuildContext context) async {
    uId = '60aa563cb2bd01aaeb5a94ac';
    http.Response user =
        await http.get(Uri.https("link.com", "getUser/$uId"));
    var userJson = jsonDecode(user.body);
    print("Patient data: ${userJson}"); /// code works till here as it prints
    UserData users = new UserData.fromJson(userJson);
    print("Patient Name ${users.name[0]}");
    return patients;
  }
}

用户模型

{_id: {$oid: 60aa563cb2bd01aaeb5a9sdfs}, Email: xyz@gmail.com, Name: pqr, Age: 20, Gender: Male, Phone: 23478917883}

我想检索每个 id(用户的姓名和年龄)的数据。当我尝试检索数据时,我遇到了这个错误。

Error: Expected a value of type 'String', but got one of type 'int'

我是 Flutter 和 Stackoverflow 的新手。你能帮我告诉我是什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:0)

此错误意味着您正在解析的字段之一是 int,但您将其初始化为 String 类型的变量

在您的数据中年龄和电话是 int 因此,在您的模型类中进行以下更改

class UserData{
 String? name;
 int? age;     //change this to int from String

 UserData({
  @required this.name,
  @required this.age,
 });

 factory UserData.fromJson(Map<String, dynamic> parsedJson) {
   return new UserData(
     name: parsedJson['Name'],
     age: parsedJson['Age'],
   );
 }
}