Как взять int из json и разобрать его как bool в dart? - PullRequest
1 голос
/ 20 января 2020

Моя модель выглядит следующим образом:

class Abc extends Model {
  int playful;

  Abc({this.playful}) : super(id);

  Abc.fromJson(Map<String, dynamic> json) : this(playful: json['playful']);

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['playful'] = this.playful;
    return data;
  }
}

Я получаю целочисленное значение playful (это либо 1, либо 0) из json, но я хочу использовать его как boolean в моем приложении (получить как bool в приложении, но отправить как int в базе данных). Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 20 января 2020

Попробуйте,

class Abc extends Model {
  bool playful;

  Abc({this.playful}) : super(id);

  Abc.fromJson(Map<String, dynamic> json) : this(playful: json['playful'] == 1);

  Map<String, dynamic> toJson() {
    final data = <String, dynamic>{};
    data['playful'] = this.playful ? 1 : 0;
    return data;
  }
}
1 голос
/ 20 января 2020

Насколько я знаю, у Dart нет никакой функции или метода для разбора логических значений. Поэтому я бы создал в этом классе приватную функцию, которая возвращала бы логическое значение для данного целого числа.

bool parseBool(int integer) {
  return integer == 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...