这是我的 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 的新手。你能帮我告诉我是什么问题,我该如何解决?
答案 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'],
);
}
}