为Flutter中从JSON转换的列表对象的变量分配值

Syahir Roslan |

我真的很陌生。我尝试搜索此问题,尽管我找到了解决方案,但并非所有问题都得到了解决,因为大多数问题只是使用return。

我有一个从API调用的JSON:

{
    "error": false,
    "message": "LOGIN_SUCCESS",
    "user": {
        "id": 1219,
        "email": "[email protected]"
        "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类中。

米凯尔·赫恩兹(MickaelHrndz)

共享首选项并不意味着存储对象。使用诸如sqflite之类的东西来持久化对象(此处为官方食谱)。

我不明白为什么您的JSON显示一个用户的数据,但是该login()功能似乎可以解码用户列表。

我猜这就是你想要的:

login() async {
    final response = await http.post("myUrlWithAPIcalls",
        body: {"email": email, "password": password});
    final data = jsonDecode(response.body);
    var user = User.fromJson(data['user']); // the variable you want
}

您没有说该login()功能在哪里,或者您想对该User对象做什么仅供参考,Flutter的重要组成部分是状态管理

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Freemarker模板中为对象分配变量

来自分类Dev

在tikz中为变量分配范围值

来自分类Dev

为 NuSMV 中的变量分配随机值

来自分类Dev

如何使用Spring Expression Language(或您知道的其他表达语言)为某些定义为变量的对象的列表分配值

来自分类Dev

如何从列表中为for循环分配值

来自分类Dev

在列表中搜索匹配的对象并分配值

来自分类Dev

在列表中搜索匹配的对象并分配值

来自分类Dev

在Promise中为对象分配值

来自分类Dev

如何通过json对象数组为嵌套对象分配值

来自分类Dev

将 JSON 字符串数组转换为 C# 列表对象,为列表中模型的每个字段返回“空”值

来自分类Dev

在jQuery中为对象数组中的对象分配新值

来自分类Dev

在Java中为列表列表成员分配值

来自分类Dev

在Ruby中为插值变量分配插值

来自分类Dev

将for循环的输出分配为动态列表中的变量

来自分类Dev

将对象分配为多维数组中的变量

来自分类Dev

如何在 VBA 中为对象属性分配变量

来自分类Dev

使用向量 r 为列表中的每个对象分配名称

来自分类Dev

无法在SQL中为本地变量分配默认值

来自分类Dev

在PostgreSQL 9.3中为变量分配选择值

来自分类Dev

在Scala模板中为变量创建和分配值

来自分类Dev

在SSIS中为变量动态分配值

来自分类Dev

bash脚本中的错误-为变量分配值

来自分类Dev

如何在外壳中为变量分配回波值

来自分类Dev

在Swift中为变量分配文本字段值

来自分类Dev

在类中为变量分配方法值

来自分类Dev

在R中的循环内为变量分配值

来自分类Dev

在Django中为变量分配多个模板值

来自分类Dev

在shell中为动态命名的变量分配带空格的值

来自分类Dev

在Crystal宏中为新变量分配值

Related 相关文章

热门标签

归档