使用 json_annotation 和 json_serializable 包生成 Dart 类,支持自动序列化。这是 Flutter 开发中的行业标准方法。
点击选择JSON文件或拖拽文件到此处
支持.json文件,最大1MB
输入您想要的Dart类名,如User、Product等
粘贴您的JSON数据或点击"加载示例"查看示例
点击"生成Dart代码"按钮,生成的代码将出现在这里
将提供的依赖添加到pubspec.yaml并运行构建命令
生成的json_serializable风格代码将类似于:
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable()
class User {
final int id;
final String name;
final String email;
User({
required this.id,
required this.name,
required this.email,
});
factory User.fromJson(Map<String, dynamic> json) =>
_$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
json_serializable 是 Dart 官方推荐的 json_annotation解决方案,通过代码生成技术为 Flutter 项目提供类型安全、高性能的 JSON 处理能力。 它使用注解驱动的方式,在编译时自动生成序列化代码,确保代码的一致性和可靠性。
复杂的业务逻辑、多团队协作、严格的代码质量要求
RESTful API、GraphQL、微服务架构的数据模型映射
嵌套对象、数组、枚举、可选字段的完美处理
添加 @JsonSerializable 注解
执行 build_runner 命令
自动生成 .g.dart 文件
在 Flutter 应用中使用
json_serializable 适合中大型 Flutter 项目,提供编译时类型安全检查、自动代码生成、复杂类型转换支持。 相比基础风格,它能处理更复杂的数据结构,支持 @JsonKey 注解进行字段自定义映射, 并且生成的代码更加健壮和性能优化。企业级项目建议使用此风格。
build_runner 是 Dart 的代码生成工具,用于在编译时生成 .g.dart 文件。它读取你的模型类中的注解, 自动生成高效的序列化代码。使用 flutter packages pub run build_runner build
命令即可生成代码。这种方式确保了类型安全和高性能。
@JsonKey 注解提供强大的自定义功能:指定 JSON 字段名映射 @JsonKey(name: 'user_id')
、 设置默认值、忽略字段序列化、自定义转换器等。它让你能够灵活处理 API 返回的复杂 JSON 结构, 适应不同的命名规范和数据格式要求。
json_serializable 最适合中大型 Flutter 项目,特别是有复杂 API 集成、多人团队协作、 需要严格类型检查的企业级应用。它在电商应用、社交媒体、金融应用等需要处理大量复杂数据的场景中表现优异。 对于小型项目,可能存在一定的学习成本。