我是 Flutter 的新手,我想知道如何获取 User 类的特定项目。
这是我的类(class)用户:
class UsersList{
List<User> users;
UsersList({
this.users
});
factory UsersList.fromJson(List<dynamic> json) {
List<User> users= List<User>();
users= json.map((i) => User.fromJson(i)).toList();
return UsersList(
users : users
);
}
Map<String, dynamic> toJson() => {
"users": users,
};
@override
String toString() {
return '{'
'users: ${this.users},'
'}';
}
}
class User{
int type;
String name;
bool gender;
User({
this.type,
this.name,
this.gender,
});
factory User.fromJson(Map<String, dynamic> json){
return User(
type : json['type'],
name: json['name'],
gender : json['gender'],
);
}
Map<String, dynamic> toJson() => {
"type" : type,
"name" : name,
"gender" : gender,
};
@override
String toString() {
return '{'
'type : ${this.type},'
'name: ${this.name},'
'gender : ${this.gender},'
'}';
}
}
我想获得一个特定的用户,这是我的功能:我的函数中有一个关键参数,可以根据我想要的值进行搜索(例如:姓名、性别、...)但我看不到如何在我的类中使用这个参数,因为它没有认 key ?
static User getUser(var value, String key, UsersList items)
{
print(items.users.where((c) => (c.key == value)).toList().first);
}
这是好方法吗?
最佳答案
您想使用 key 访问用户,为此您可以使用 toJson() 方法,例如
static User getUser(var value, String key, UsersList items){
return users.where((c) => (c.toJson()['name'] == 'name')).toList().first;
}
在 User 对象中你提到了性别为 bool 并且这种做法会混淆,使用可以将其命名为 isMale/isFemale,那么以后你就不会混淆了。
关于 flutter 如何获得一个类的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64081564/