在Flutter中生成Model有多种方式:
1. 手动创建Model(推荐学习使用)
class User {
  final String name;
  final int age;
  final String email;
  User({
    required this.name,
    required this.age,
    required this.email,
  });
  factory User.fromJson(Map<String, dynamic> json) {
    return User(
      name: json['name'],
      age: json['age'],
      email: json['email'],
    );
  }
  Map<String, dynamic> toJson() {
    return {
      'name': name,
      'age': age,
      'email': email,
    };
  }
}
2. 使用json_annotation库(推荐生产使用)
pubspec.yaml添加依赖:
dependencies:
  flutter:
    sdk: flutter
  json_annotation: ^4.8.1
dev_dependencies:
  build_runner: ^2.4.4
  json_serializable: ^6.7.1
创建Model:
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable()
class User {
  final String name;
  final int age;
  final String email;
  User({
    required this.name,
    required this.age,
    required this.email,
  });
  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
  Map<String, dynamic> toJson() => _$UserToJson(this);
}
生成代码:
flutter pub run build_runner build
3. 使用在线工具
4. 使用IDE插件
- Flutter Data Class Generator(Android Studio/VS Code插件)
 
推荐方案
对于生产项目,推荐使用 json_annotation + json_serializable 方案,因为它:
- 自动生成序列化代码
 
- 类型安全
 
- 易于维护
 
- 支持复杂嵌套结构
 
对于学习阶段,建议先手动编写以理解原理。