zoukankan      html  css  js  c++  java
  • Flutter 数据模型创建

    build_runner的使用
    1、在根目录运行
    2、一次性创建.g.dart文件 使用build 此时目录内不能有.g.dart文件
    3、watch是监听 有model类的文件创建 自动创建.g.dart文件
    flutter packages pub run build_runner build
    flutter packages pub run build_runner watch
    dependencies:
      flutter:
        sdk: flutter
    
      json_annotation: ^1.2.0 #json_serializable助手
    
    dev_dependencies:
      flutter_test:
        sdk: flutter
    
      build_runner: ^1.0.0  #创建.g.dart
      json_serializable: ^1.5.1  #序列化json

    .dart文件

    import 'package:json_annotation/json_annotation.dart';
    
    part 'UserInfo.g.dart';
    ///标志class需要实现json序列化功能
    @JsonSerializable()
    ///创建类Userinfo 继承Object
    ///里面有两个属性 name和id
    class UserInfo extends Object {
      String name;
      int id;
    
    ///通过JsonKey重新定义参数名
      @JsonKey(name: "details_id")
      int detailsId;
    
      /// 构造函数
      UserInfo(this.name, this.id, this.detailsId);
    
    /// _$HomeModelFromJson 这个函数在.g.dart中,命名就是类名+FromJson
    /// 直接写就行 报错也没关系 生成.g.dart文件之后就好了
      factory UserInfo.fromJson(Map<String, dynamic> json) => _$UserInfoFromJson(json);
      
    }

    .g.dart文件
    这个文件是build_runner生成的文件
    创建完了IDE文件列表看不见,去文件目录里面找。

    // GENERATED CODE - DO NOT MODIFY BY HAND
    
    part of 'UserInfo.dart';
    
    // **************************************************************************
    // JsonSerializableGenerator
    // **************************************************************************
    
    UserInfo _$UserInfoFromJson(Map<String, dynamic> json) {
      return UserInfo(json['name'] as String, json['id'] as int);
    }
    
    Map<String, dynamic> _$UserInfoToJson(UserInfo instance) =>
        <String, dynamic>{'name': instance.name, 'id': instance.id};
  • 相关阅读:
    Makefile目标汇总和变量的高级用法
    make命令详解
    再议HTML Clipboard Format
    编写一个Open Live Writer的VSCode代码插件
    win7安装ps cc 2019切片闪退
    redis cluster 数据迁移
    linux服务器两块网卡路由优先级冲突 Metric值(转)
    电梯怎么测,附常见的测试用例
    vue中watch属性深度监听,监听数组或多维数组下层
    前端JS base64与图片互转
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/10274246.html
Copyright © 2011-2022 走看看