添加json_serializable时遇配置选项解析错误,求解决方案
解决json_serializable配置解析错误问题
问题原因
你遇到的错误是因为当前使用的json_serializable: ^6.5.3版本不支持super-parameters和enhanced-enums这两个配置项——这两个是后续版本才新增的配置键,而你的代码或依赖(比如freezed)可能在隐式或显式使用了这两个配置,导致解析失败。
解决方案
1. 检查并移除不兼容的配置项
检查代码中所有@JsonSerializable()注解的参数,如果你手动添加了super-parameters或enhanced-enums,直接删掉这两个配置,改用当前版本支持的参数列表:
// 错误示例 @JsonSerializable(super-parameters: true) // 正确示例(移除不支持的参数) @JsonSerializable()
2. 调整依赖版本匹配
由于你同时使用了freezed: ^2.3.2,需要确保它和json_serializable的版本兼容:
- 升级
json_serializable到支持这两个配置的版本(比如^7.2.0),修改pubspec.yaml后执行依赖更新:
dev_dependencies: # ...其他依赖 json_serializable: ^7.2.0 freezed: ^2.3.2
运行命令:
flutter pub get flutter pub run build_runner build
- 如果升级后出现SDK版本不兼容问题,可降低
freezed到和json_serializable: ^6.5.3匹配的版本(比如freezed: ^2.2.0),重复上述更新和构建步骤。
3. 清理缓存后重新构建
若调整版本后仍有异常,先清理build_runner缓存再尝试:
flutter pub run build_runner clean flutter pub run build_runner build
内容的提问来源于stack exchange,提问作者Abhishek kapoor
相关产品推荐
相关产品推荐

