将地图的所有键和值转换为Dart中的字符串

时间:2018-10-25 15:11:57

标签: json dictionary dart flutter

我遇到的问题与序列化和解码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}}

也在https://github.com/dart-lang/protobuf/issues/136上问到

1 个答案:

答案 0 :(得分:0)

当前有一个请求请求允许字段名称。 https://github.com/dart-lang/protobuf/pull/83