在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 方案,因为它:
- 自动生成序列化代码
- 类型安全
- 易于维护
- 支持复杂嵌套结构
对于学习阶段,建议先手动编写以理解原理。