【发布时间】:2021-03-18 10:12:50
【问题描述】:
我真的是 Flutter 的新手。我尝试搜索这个问题,虽然我找到了解决方案,但并不是我的所有问题都得到解决,因为大多数问题只是使用返回。
我有一个从 API 调用这里得到的 JSON:
{
"error": false,
"message": "LOGIN_SUCCESS",
"user": {
"id": 1219,
"email": "john@example.com"
"name": "John Doe",
"category": 1,
"branch": 1004,
"lastlogin": "2020-12-04 03:12:43"
}
}
我已经为用户创建了如下类
class User {
int id;
String name;
String email;
String category;
String branch;
String lastLogin;
User({
this.id,
this.name,
this.email,
this.category,
this.branch,
this.lastLogin
});
factory User.fromJson(Map<String, dynamic> datauser){
return User(
id: datauser['id'],
name: datauser['name'],
email: datauser['email'],
category: datauser['category'],
branch: datauser['branch'],
lastLogin: datauser['lastlogin']
);
}
}
还有一个如下的结果类..
class Result {
String message;
User user;
Result({
this.message,
this.user
});
factory Result.fromJson(Map<String, dynamic> resultData){
return Result(
message: resultData['message'],
user: User.fromJson(resultData['user'])
);
}
}
现在我的问题来了,因为我不知道如何从这一点继续前进
login() async {
List<User> users;
final response = await http.post("myUrlWithAPIcalls",
body: {"email": email, "password": password});
final data = jsonDecode(response.body);
var rest = data['user'] as List;
users = rest.map<User>((json) => User.fromJson(json)).toList();
}
所以问题是,如何将我从已转换为列表的 JSON 中获得的值分配给变量?
现在在示例中,如果它只是一个简单的 JSON 对象,我可以这样做..
final data = jsonDecode(response.body);
int id = data['id'];
String name = data['name'];
String email = data['email'];
String category = data['category'];
String branch = data['branch'];
但我怎样才能在列表对象中做到这一点?
任何人都想知道为什么我会这样做,我试图将数据保存到我从其他人的代码中复制的 sharedpref 类中。
【问题讨论】: