如何获取@JsonEnum(fieldRename)配置下的枚举JSON字符串值?
利用json_serializable自动生成枚举的命名转换方法
当你用@JsonEnum(fieldRename: FieldRename.snake)标记枚举时,json_serializable其实会自动帮你生成序列化和反序列化方法,完全不用手动写switch扩展来维护映射。
具体操作步骤:
确认依赖配置
确保pubspec.yaml里包含必要的依赖(版本号可按需更新):dependencies: json_annotation: ^4.8.1 dev_dependencies: json_serializable: ^6.7.1 build_runner: ^2.4.4自动生成代码
在项目根目录运行以下命令,触发代码生成:dart run build_runner build直接使用生成的方法
代码生成完成后,你的枚举会自动拥有toJson()方法,调用它就能得到符合fieldRename规则的字符串:@JsonEnum(fieldRename: FieldRename.snake) enum A { firstValue, secondValue, thirdValue, } void main() { print(A.firstValue.toJson()); // 输出: first_value print(A.secondValue.toJson()); // 输出: second_value }
这个方案完全复用了fieldRename的配置,后续新增枚举值也不需要手动修改映射逻辑,比你之前的临时方案更省心。而且toJson()返回的就是处理后的纯字符串,直接拿来作为GET请求的参数值即可,不需要额外转换。
内容的提问来源于stack exchange,提问作者rainbowour
相关产品推荐
相关产品推荐

