告别手写fromJson:get generate model将JSON秒变Dart模型类的3种用法

📅 发布时间:2026/8/23 11:45:03
告别手写fromJson:get generate model将JSON秒变Dart模型类的3种用法
告别手写fromJsonget generate model将JSON秒变Dart模型类的3种用法【免费下载链接】get_cliOfficial Getx CLI项目地址: https://gitcode.com/gh_mirrors/ge/get_cliGetx CLI 的get generate model命令可以帮你把 JSON 数据一键转换成结构完整的 Dart 模型类——不再手写繁琐的fromJson/toJson。本文面向 Flutter 与 GetX 新手带你快速掌握它的 3 种实用用法从本地文件到接口 URL5 分钟上手。为什么值得用它 拿到一份接口返回的 JSON你是否还在手动逐字段对照着写模型类字段多、嵌套深容易漏写或类型写错数组里的对象要再建一个子模型类工作量翻倍复制粘贴半天换个接口又得重来一遍get generate model就是为了解决这个问题它会自动解析 JSON 结构递归生成所有嵌套的子模型类并输出经过DartFormatter格式化、可直接编译的代码。安装 Getx CLI安装只有一条命令flutter pub global activate get_cli安装完成后get和getx两个命令名都可以使用见 pubspec.yaml 中的executables配置。用法一从本地 JSON 文件生成模型这是最常用的场景。把接口示例数据保存为 JSON 文件例如assets/models/user.json然后执行get generate model on home with assets/models/user.json命令说明on home模型类输出到项目 home 目录with assets/models/user.json指定作为模板的 JSON 文件执行后会生成生成物说明xxx_model.dart包含fromJson、toJson的模型类嵌套对象自动拆成独立子模型类xxx_provider.dart基于 GetConnect 的 Provider内置 GET/POST/DELETE 端点骨架 不指定文件名时类名会自动取自 JSON 文件名的首字母大写形式比如user.json生成User类。用法二从 API 接口 URL 直接生成如果接口可以直接访问并返回 JSON连示例文件都不用准备get generate model on home from https://api.github.com/users/CpdnCristianoCLI 会先请求该 URL再把返回内容解析为模型类。连接失败时会明确提示错误信息见 translations/en.json 中的failed_to_connect。注意URL 必须返回标准 JSON 格式。用法三用参数定制生成结果get generate model支持几个高频参数灵活控制输出参数作用--skipProvider只生成模型类不生成 Provider--private字段使用私有变量 getter更符合 Dart 封装习惯--withCopy额外生成copyWith方法方便创建差量更新的新对象组合示例——只要纯净的模型类、带copyWith、字段私有get generate model on home with assets/models/user.json --private --withCopy它是怎么做到的整个过程由 lib/commands/impl/generate/model/model.dart 中的GenerateModelCommand驱动读取 JSON支持本地文件或直接请求 URL 两种方式解析结构内置的 JSON 解析器位于lib/common/utils/json_serialize/json_ast/目录把 JSON 解析成 AST递归生成ModelGeneratormodel_generator.dart遍历字段遇到嵌套对象就递归生成子模型类数组则提取元素类型智能去重结构相同的重复对象会自动合并为同一个模型类避免代码冗余格式化输出生成代码经过DartFormatter格式化空数组等边界情况也会给出 warning 提示也就是说一次命令你得到的是多文件级别的完整模型层代码而不是单个类。常见问题Q生成的代码编译不过检查你的 JSON 是否为合法格式。若解析失败命令会提示xxx is not a valid json file。Q类名不满意类名默认来自 JSON 文件名。想让类名更贴合业务可以重命名 JSON 文件后再执行。Q不想生成 Provider 怎么办加上--skipProvider参数即可。总结场景命令本地 JSON 文件get generate model on home with assets/models/user.json接口 URLget generate model on home from https://...定制输出追加--private、--withCopy、--skipProvider一句话总结get generate model把JSON 转模型这件最机械的脏活交还给工具把时间留给真正需要思考的业务逻辑。现在就可以在你的 Flutter 项目里试试第一条命令吧【免费下载链接】get_cliOfficial Getx CLI项目地址: https://gitcode.com/gh_mirrors/ge/get_cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考