Flutter 数据模型快速生成的几种方案

237 阅读1分钟
  • 手动编写模型类: 手动根据后端返回的数据结构创建 Dart 类,定义属性和构造函数,并提供从 JSON 转换为模型和从模型转换为 JSON 的方法。

    class User {
      final String name;
      final int age;
    
      User({required this.name, required this.age});
    
      factory User.fromJson(Map<String, dynamic> json) {
        return User(
          name: json['name'],
          age: json['age'],
        );
      }
    
      Map<String, dynamic> toJson() {
        return {
          'name': name,
          'age': age,
        };
      }
    }
    
  • 使用 json_serializable: 使用 json_serializable 自动生成模型类的代码,通过注解简化 JSON 转换过程。

    1. pubspec.yaml 文件中添加依赖:

      dependencies:
        json_annotation: ^4.7.0
      
      dev_dependencies:
        build_runner: ^2.3.0
        json_serializable: ^6.3.0
      
    2. 定义模型类并添加注解:

      import 'package:json_annotation/json_annotation.dart';
      
      part 'user.g.dart';
      
      @JsonSerializable()
      class User {
        final String name;
        final int age;
      
        User({required this.name, required this.age});
      
        factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
        Map<String, dynamic> toJson() => _$UserToJson(this);
      }
      
    3. 运行 build_runner 来生成相应的代码:

      $ flutter pub run build_runner build
      
  • 使用在线工具: 有些工具可以将后端接口返回的 JSON 数据转换为 Dart 类代码。例如:

    只需要提供服务器返回的 JSON 格式数据,这些工具会生成相应的 Dart 类代码。