如何从flutter中的json响应获取单个Map实例

问题描述 投票:0回答:1

我的地图模型为:

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);
flutter dart
1个回答
0
投票

根据您正在处理的 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);
}

并且根据您的逻辑,您可以添加验证来检查是否不为空,是否是地图或其他内容,具体取决于您的要求

© www.soinside.com 2019 - 2024. All rights reserved.