gpt4 book ai didi

flutter - 如何使用包built_value与Map 进行序列化

转载 作者:行者123 更新时间:2023-12-03 03:33:07 25 4
gpt4 key购买 nike

有谁知道我如何序列化/反序列化Map 而不是 built_value packagetoJson e fromJson方法中默认的String?
我需要与Firestore一起使用,并且 setData方法仅接受数据的Map。
我当前的Serializer类具有以下代码。我可以添加其他一些插件或配置来使用map吗?

final Serializers serializers =
(_$serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
方法如下:
 String toJson() {
return json.encode(serializers.serializeWith(Comment.serializer, this));
}

static Comment fromJson(String jsonString) {
return serializers.deserializeWith(
Comment.serializer, json.decode(jsonString));
}

最佳答案

您的toJson方法应类似于:

  Map<String, dynamic> toJson() {
return serializers.serializeWith(PlayerModel.serializer, this);
}
那就是摆脱 json.encode
同样对于 fromJson:
  static PlayerModel fromJson(Map<String, dynamic> json) {
return serializers.deserializeWith(PlayerModel.serializer, json);
}
这是我使用的示例PlayerModel:
abstract class PlayerModel implements Built<PlayerModel, PlayerModelBuilder> {
@nullable
String get uid;
String get displayName;

PlayerModel._();
factory PlayerModel([void Function(PlayerModelBuilder) updates]) =
_$PlayerModel;

Map<String, dynamic> toJson() {
return serializers.serializeWith(PlayerModel.serializer, this);
}

static PlayerModel fromJson(Map<String, dynamic> json) {
return serializers.deserializeWith(PlayerModel.serializer, json);
}

static Serializer<PlayerModel> get serializer => _$playerModelSerializer;
}

关于flutter - 如何使用包built_value与Map <String,dynamic>进行序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62650956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com