flutter如何生成model

在Flutter中如何快速生成Model类?有没有推荐的代码生成工具或插件?手动编写Model太耗时了,特别是处理JSON序列化时容易出错。能否介绍下json_serializable或freezed这类库的具体使用步骤?最好能提供完整的示例代码和注意事项。

2 回复

使用 json_serializable 库生成 Flutter Model:

  1. 添加依赖:json_annotationjson_serializablebuild_runner
  2. 创建 Model 类,添加 @JsonSerializable() 注解。
  3. 运行命令生成代码:flutter packages pub run build_runner build

更多关于flutter如何生成model的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在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 方案,因为它:

  • 自动生成序列化代码
  • 类型安全
  • 易于维护
  • 支持复杂嵌套结构

对于学习阶段,建议先手动编写以理解原理。

回到顶部