You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中@JsonSerializable能否自动处理List泛型的JSON序列化映射?

问题解答

首先明确结论:不需要开发者手动遍历转换Movie类型列表,但需要先完成嵌套类的序列化配置,才能让json_serializable自动完成列表转换,你遇到的类型报错就是因为缺少嵌套类的配置导致的。

具体操作步骤

  • 第一步:给Movie类添加@JsonSerializable()注解,同时实现对应的fromJson工厂方法和toJson实例方法,和你当前Content类的写法一致。只有给嵌套的自定义类型也加上序列化配置,json_serializable才能识别如何将接口返回的Map<String, dynamic>对象转换为Movie实例。
  • 第二步:重新执行序列化文件生成命令,覆盖旧的生成文件:
    flutter pub run build_runner build --delete-conflicting-outputs
    

报错原因说明

你遇到的_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'报错,本质是json_serializable在没有找到Movie类的序列化逻辑时,会默认尝试将Map对象强转为它能识别的基础类型(比如String),最终触发类型不匹配的异常,只要完成上述配置就可以解决问题。


内容的提问来源于stack exchange,提问作者Abraham Mathew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 02:15:04