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};
  • 相关阅读:
    密钥和地址
    SSL协议
    比特币原理
    自定义tabbar pop控制器 tabbar 重叠问题
    tableView的懒懒的跳转方式,加载数据源方式
    textView在tableViewcell中复用问题,复用时超链接也出现复用,超链接出现在不该出现的文字上
    textview显示文字不全问题
    tableView不执行didselsct代理方法
    NSUserDefaults 存储可变数组问题
    某些时候,collectionVIew的Item无法点击的bug,
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/10274246.html
Copyright © 2011-2022 走看看