我遇到的问题与序列化和解码JSON有关。我正在尝试序列化Protobuf消息以将其与reduxpersist一起使用。
这是我用来序列化对象的方法:
Map<String, dynamic> toJSON(){
return <String, dynamic>{
'isLogged': this.isLogged,
'isExpired': this.isExpired,
'protoUser':
this.protoUser == null ? null : this.protoUser.writeToJsonMap()),
'error': this.error,
}
};
这是我用来读取持久状态的方法:
factory AuthState.fromJSON(Map<String, dynamic> json){
new AuthState(
isLogged: json['isLogged'],
isExpired: json['isExpired'],
error: json['error'],
protoUser: json['protoUser'] == null
? null
: new Auth.fromJson(json['protoUser'].toString()),
);
}
我遇到的问题是writeToJsonMap
没有为飞镖编写有效的JSON映射。因此,当读取序列化状态时,会出现此错误:
E/flutter (24643): FormatException: Unexpected character (at character 2)
E/flutter (24643): {1: 200, 2: test1, 3: test2, 4: {1: 1, 3: Mike, 4: tester}}