我的地图模型为:
class Users {
final int userID;
final String name;
final String username;
final String email;
final Address address;
Users({this.userID, this.name, this.username, this.email, this.address});
factory Users.fromJson(Map<String, dynamic> usersjson)=> Users(
userID: usersjson["id"],
name: usersjson["name"],
username: usersjson["username"],
email: usersjson["email"],
address: Address.fromJson(usersjson["address"])
);
}
我从 http API 得到了 json 响应。 对于 Json 中的 dala 列表,我们可以转换为 MAP 用户,如下
List userList = jsonDecode(response.body) as List;
List<Users> myUserList = userList.map((data) => Users.fromJson(data)).toList();
但是如果我在 json 响应中有单个数据,那么如何在用户映射的单个实例中获取数据? 喜欢:
Users mySingleUser = Users.fromJson(response.body);
根据您正在处理的 json,您可以执行此操作
如果 json 是单个对象而不是列表。例如
{
'id': '',
'name': '',
'username': '',
'email': '',
'address': '',
}
您可以使用这个:
Users mySingleUser = Users.fromJson(response.body);
或者,如果您需要验证您是否正在处理和反对或列表,您可以这样做
if (response.body is List) {
return Users.fromJson(response.body[0]);
} else {
return Users.fromJson(response.body);
}
并且根据您的逻辑,您可以添加验证来检查是否不为空,是否是地图或其他内容,具体取决于您的要求