Flutter/Dart 使 JSON Listview 中丢失的项目自动匿名?
Flutter/Dart Make Missing Item in JSON Listview Automatically Anonymous?
我在 Flutter 中有一个 Listview,它从 MySQL 数据库中获取 JSON 项。列表中的每一项都包含用户标识、用户名和头像。有时用户已被删除,因此数据库 returns 每列为“NULL”。如何自动将“userid”分配给“1”,将“username”分配给“anonymous”,将头像自动分配给“anonymous.jpg”?
这是我用于列表视图的 class;
class AccountContent {
String? name;
String? avatar;
String? userid;
AccountContent({this.name, this.avatar, this.userid});
AccountContent.fromJson(Map<String, dynamic> json) {
name = json['name'];
avatar = "https://mysite/avatar.jpg";
userid = json['userid'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['avatar'] = this.avatar;
data['userid'] = this.userid;
return data;
}
}
当字段为空时,您可以使用default null check operator (??)
分配默认值。
class AccountContent {
String? name;
String? avatar;
String? userid;
AccountContent({this.name, this.avatar, this.userid});
AccountContent.fromJson(Map<String, dynamic> json) {
name = json['name'] ?? "1";
avatar = "https://mysite/avatar.jpg" ?? "anonymous.jpg";
userid = json['userid'] ?? "anonymous";
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['avatar'] = this.avatar;
data['userid'] = this.userid;
return data;
}
}
我在 Flutter 中有一个 Listview,它从 MySQL 数据库中获取 JSON 项。列表中的每一项都包含用户标识、用户名和头像。有时用户已被删除,因此数据库 returns 每列为“NULL”。如何自动将“userid”分配给“1”,将“username”分配给“anonymous”,将头像自动分配给“anonymous.jpg”?
这是我用于列表视图的 class;
class AccountContent {
String? name;
String? avatar;
String? userid;
AccountContent({this.name, this.avatar, this.userid});
AccountContent.fromJson(Map<String, dynamic> json) {
name = json['name'];
avatar = "https://mysite/avatar.jpg";
userid = json['userid'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['avatar'] = this.avatar;
data['userid'] = this.userid;
return data;
}
}
当字段为空时,您可以使用default null check operator (??)
分配默认值。
class AccountContent {
String? name;
String? avatar;
String? userid;
AccountContent({this.name, this.avatar, this.userid});
AccountContent.fromJson(Map<String, dynamic> json) {
name = json['name'] ?? "1";
avatar = "https://mysite/avatar.jpg" ?? "anonymous.jpg";
userid = json['userid'] ?? "anonymous";
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name;
data['avatar'] = this.avatar;
data['userid'] = this.userid;
return data;
}
}