Преобразование переменных класса в объект - PullRequest
0 голосов
/ 28 мая 2020

Я пишу свое приложение на дротике.

У меня есть такой класс

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

Я устанавливаю эти значения на разных этапах приложения. Я хочу сохранить эти данные после того, как пользователь вошел в систему.

Есть ли способ получить объект ключевых значений из этого класса следующим образом

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

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Вы можете использовать эту утилиту. Там будет ваш запрос :) Отлично

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;
  }
}
0 голосов
/ 28 мая 2020

Все, что вам нужно, - это добавить такую ​​функцию в свой AuthUser класс:

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

Затем вызвать ее, когда вы хотите получить JSON представление данных.

Наконец, используйте функцию jsonEncode(), чтобы получить String представление:

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