我有Foo
和Bar
两个班:
@JsonSerializable()
class Foo {
final Bar bar;
Foo(this.bar);
factory Foo.fromJson(Map<String, dynamic> json) => _$FooFromJson(json);
Map<String, dynamic> toJson() => _$FooToJson(this);
}
@JsonSerializable()
class Bar {
final String s;
Bar(this.s);
factory Bar.fromJson(Map<String, dynamic> json) => _$BarFromJson(json);
Map<String, dynamic> toJson() => _$BarToJson(this);
}
生成代码后,我使用:
final bar = Bar('hi');
final foo = Foo(bar);
print(foo.toJson());
上面这行是输出
{bar: Instance of 'Bar'}
但我想把它打印出来
{bar: "hi"}
一种方法是在Bar
类中重写toString
方法,但我认为在使用json_serializable
生成代码时,这不是一种好方法.我想我缺少一些微不足道的财产.