json - _CastError(类型 '_InternalLinkedHashMap<dynamic, dynamic>' 不是类型转换中类型 'Map<String, dynamic>' 的子类型)

标签 json flutter dart google-cloud-firestore json-serialization

我使用 Dart“json_serialized”包在 Flutter 应用程序中反序列化下面的 Firestore 数据结构。

{
googleBookId: jjl4BgAAQBAJ, 
providers: [
    {providerId: 2FA9fULKLLf7VUPPFnFRnv}, 
    {providerId: 8UYTGUHY7UJS432FVBJRnv}
]
}

下面是要映射的模型类:

@JsonSerializable()
class Book {

  String googleBookId;
  List<Provider> providers;

  Book(this.googleBookId,
  {List<Provider> providers})
  : providers = providers ?? <Provider>[];

  factory Book.fromJson(Map<String, dynamic> map) => _$BookFromJson(map);

  Map<String, dynamic> toJson() => _$BookToJson(this);
}

@JsonSerializable()
class Provider {

  String providerId;

  Provider(this.providerId);

  factory Provider.fromJson(Map<String, dynamic> map) => _$ProviderFromJson(map);

  Map<String, dynamic> toJson() => _$ProviderToJson(this);
}

反序列化时出现以下错误

_CastError (type '_InternalLinkedHashMap' is not a subtype of type 'Map' in type cast)

Is there any other library that I can use to deserialize document?

最佳答案

发布于other question我能够通过编码为 JSON 字符串并在反序列化之前返回 JSON 对象来反序列化 Firestore 文档。

@Chiziaruhoma Ogbonda感谢您的澄清,它帮助我以其他方式思考,而不是直接绑定(bind)到反序列化文档。

关于json - _CastError(类型 '_InternalLinkedHashMap<dynamic, dynamic>' 不是类型转换中类型 'Map<String, dynamic>' 的子类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58741971/

相关文章:

javascript - 单击保存多次

json - Logstash 从标准输入读取数据,但不从文件读取数据

javascript - 停止 javascript 执行直到 jquery JSON 响应

flutter - 拜托,如何将蓝色容器嵌入代码中

firebase - 如何将 Firestore 文档列表绑定(bind)到 Flutter 中的下拉菜单?

intellij-idea - 在 intellij ide 中获取异常,flutter 演示应用程序 hello_services

dart - 我什么时候应该使用 FutureBuilder?

android - 使用 Picasso 在第二个 Volley JSON 请求后将图像加载到 RecyclerView 中?

flutter - 在 Flutter 项目中为 iOS 导出存档时,Codemagic 或 FaSTLane 失败

flutter - flutter:将Text和其他小部件转换为JSON(或以编程方式生成时向路由添加参数的另一种解决方案)?