调用GET接口转模型时遇TypeError错误求助
解决JSON转模型类时的TypeError问题
错误原因
TypeError (type '(dynamic) => Null' is not a subtype of type '(String, dynamic) => void' of 'action') 本质是回调函数类型不匹配:你在处理JSON键值对时,传入了仅接受单个dynamic参数的函数,但框架需要的是能接收(String, dynamic)(键、值)两个参数的回调函数。
具体解决步骤
- 检查手动解析代码:如果是自己编写
fromJson方法遍历JSON,确保使用正确的forEach回调格式。
错误示例:
正确示例:// 错误写法:仅传递单个参数 json.forEach((item) { // 错误的处理逻辑 });// 正确写法:接收key和value两个参数 json.forEach((key, value) { switch(key) { case 'title': this.title = value; break; // 其他属性的映射处理 } }); - 检查序列化库配置:如果使用
json_serializable或freezed这类序列化库,查看自定义解析函数的参数类型。比如在@JsonKey(fromJson: ...)注解中,传入的函数必须符合对应类型要求,不能用单个参数的函数处理键值对场景。 - 排查模型类属性映射:确保所有JSON字段到模型属性的映射逻辑,没有误用单个参数的回调函数替代键值对回调。
内容的提问来源于stack exchange,提问作者Khánh duy Lê
相关产品推荐
相关产品推荐

