【问题标题】:how to update models in dart如何更新飞镖中的模型
【发布时间】:2020-11-16 19:32:11
【问题描述】:

如果您运行下面的代码,您将看到输出为空,这完全有道理,因为我在结果变量中分配值。

我希望result 为 10,类似于 javascript 的 Object.assign, 但我不知道该怎么做,因为无法使用 .addAll

void main() {
var a = {"name": "car", "value": 5, "array": [{"speed":3}]};
var b = {"name": "car", "value": 10};
var c = {"name": "car", "array": [{"speed":10}]};
var d = {"name": "changed", "array": [{"speed":3}]};
var result = Car();
result = Car.fromJson(a);
result = Car.fromJson(b);
result = Car.fromJson(c);
result = Car.fromJson(d);
  
print(result.value); // outputs null, but i expect to print 10

}

// generated via https://javiercbk.github.io/json_to_dart/
class Car {
  String name;
  int value;
  List<Arr> arr;

  Car({this.name, this.value, this.arr});

  Car.fromJson(Map<String, dynamic> json) {
    name = json['name'];
    value = json['value'];
    if (json['arr'] != null) {
      arr = new List<Arr>();
      json['arr'].forEach((v) {
        arr.add(new Arr.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['name'] = this.name;
    data['value'] = this.value;
    if (this.arr != null) {
      data['arr'] = this.arr.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class Arr {
  int speed;

  Arr({this.speed});

  Arr.fromJson(Map<String, dynamic> json) {
    speed = json['speed'];
  }

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

【问题讨论】:

    标签: javascript dart variable-assignment


    【解决方案1】:

    首先,您必须合并四张地图,并根据它们的值仅制作一张。然后您可以从生成的 json 映射中反序列化。

    【讨论】:

    • 请不要在所有帖子中添加“干杯”。
    猜你喜欢
    • 1970-01-01
    • 2022-11-15
    • 2021-12-20
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 2023-01-31
    相关资源
    最近更新 更多