【发布时间】: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