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

如何获取@JsonEnum(fieldRename)配置下的枚举JSON字符串值?

利用json_serializable自动生成枚举的命名转换方法

当你用@JsonEnum(fieldRename: FieldRename.snake)标记枚举时,json_serializable其实会自动帮你生成序列化和反序列化方法,完全不用手动写switch扩展来维护映射。

具体操作步骤:

  1. 确认依赖配置
    确保pubspec.yaml里包含必要的依赖(版本号可按需更新):

    dependencies:
      json_annotation: ^4.8.1
    dev_dependencies:
      json_serializable: ^6.7.1
      build_runner: ^2.4.4
    
  2. 自动生成代码
    在项目根目录运行以下命令,触发代码生成:

    dart run build_runner build
    
  3. 直接使用生成的方法
    代码生成完成后,你的枚举会自动拥有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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:55:23