【问题标题】:Convert class variables to object将类变量转换为对象
【发布时间】:2020-05-28 06:28:18
【问题描述】:

我正在用 dart 编写我的应用程序。

我有这样的课

class AuthUser {
  String token = "";
  DateTime expiryDate;
  String userId = "";
  String username = "";
  String firstName = "";
  String lastName = "";
}

我在应用程序的各个阶段设置这些值。 我想在用户登录后保存这些数据。

有没有办法像这样从这个类中获取键值对象

{
'token':'1131313131',
'expiryDate': '89080',
'userId':5,
'username:'abc',
...
}

【问题讨论】:

    标签: class flutter dart save


    【解决方案1】:

    您只需将这样一个函数添加到您的AuthUser 类中:

    Map<String, dynamic> toJson() => 
      {
        'token': token,
        'expiryDate': expiryDate,
        'userId': userId,
        'username': username,
      };
    

    然后在你想要获取 JSON 数据表示时调用它。

    最后,使用jsonEncode()函数得到String表示:

    var json = jsonEncode(week.toJson());
    

    【讨论】:

      【解决方案2】:

      您可以使用此实用程序。它将包括您的请求:) 太棒了

      https://javiercbk.github.io/json_to_dart/

      class AuthUser {
        String token;
        String expiryDate;
        int userId;
        String username;
      
        AuthUser({this.token, this.expiryDate, this.userId, this.username});
      
        AuthUser.fromJson(Map<String, dynamic> json) {
          token = json['token'];
          expiryDate = json['expiryDate'];
          userId = json['userId'];
          username = json['username'];
        }
      
        Map<String, dynamic> toJson() {
          final Map<String, dynamic> data = new Map<String, dynamic>();
          data['token'] = this.token;
          data['expiryDate'] = this.expiryDate;
          data['userId'] = this.userId;
          data['username'] = this.username;
          return data;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-28
        • 1970-01-01
        • 2016-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多