问题如下,我有一个颤振项目,其中一些类使用built_value和一些类使用json_serializable。两者都可以单独工作,但使用非常不同的方式来序列化/反序列化 JSON。
built_value 使用 Serializers 做自己的事情,而 json_serializer 使用 dart:convert 的fromJson
/toJson
方法约定
而且我找不到一种简单的方法来组合这些。
我正在寻找的是这样的:
假设我有一个 @JsonSerializable() 类Person
@JsonSerializable()
class Person {
final String name;
final int age;
Person(this.name, this.age);
factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json);
Map<String, dynamic> toJson() => _$PersonToJson(this);
}
和一个 built_value 类SomeAppState
abstract class SomeAppState implements Built<SomeAppState, SomeAppStateBuilder> {
@nullable
Person get currentPerson;
SomeAppState._();
factory SomeAppState([void Function(SomeAppStateBuilder) updates]) = _$SomeAppState;
static Serializer<SomeAppState> get serializer => _$someAppStateSerializer;
}
似乎没有一种合理的方法来序列化/反序列化一个对象,SomeAppState
因为 built_value 不关心 fromJson/toJson 并且似乎没有任何方法可以反过来做,因为 built_value 序列化程序不'生产Map<String, dynamic>
我是否被迫选择/或只是接受您不能在两者之间进行互操作,或者我是否缺少一些聪明的东西?