• Flutter 生成.g.dart文件


    根据json生成dart和g.dart

    flutter中文网地址

    https://book.flutterchina.club/chapter11/json_model.html

    https://caijinglong.github.io/json2dart/index.html

    这个网站可以自动将json文件转成json_serializable所需要的格式,新建并复制成***.dart文件,通过在terminal内输入下面代码,自动生成.g.dart文件

    flutter packages pub run build_runner build
    

    如果有报错可以尝试一下下面这条

    flutter packages pub run build_runner build --delete-conflicting-outputs




    Flutter json_serializable标准生成.g.dart文件步骤

    Gary_fei
    2020.05.09 16:56:52字数 194阅读 477

    前景:

    Json序列化工具json_serializable,在导入package, 在model.dart转模型类中,引入头文件,声明@JsonSerializable(),创建类型与属性,再执行flutter packages pub run build_runner build,然而并没有自动生成model.g.dart文件

    标准步骤:

    1. pubspec.yaml文件导入依赖库,注意文字的对其
    dependencies:
      flutter:
        sdk: flutter
      json_annotation: ^2.0.0
     
    dev_dependencies:
      flutter_test:
        sdk: flutter
      json_serializable: ^2.0.0
      build_runner: ^1.0.0
    
    1. 新建model.dart文件,导入头文件,文件内容,复制如下,格式最好整齐划一
    import 'package:json_annotation/json_annotation.dart';
    part 'model.g.dart';
     
    
    1. cd到工程的根目录,再执行下面命令
    flutter packages pub run build_runner build //使用 build_runner 生成 .g.dart 文件
    
    flutter packages pub run build_runner wacth //监控生成文件,如果有改动时自动生成/更新 .g.dart 文件
    
    1. 打开项目,应该就可以看到.g.dart文件

    如果出现报错或者仍然没生成.g.dart文件

    1. cd到工程的根目录,再执行下面命令
    flutter packages pub run build_runner build --delete-conflicting-outputs  //删除并重新创建.g.dart文件
    
    1. 没有生成,再运行下
    flutter packages pub run build_runner build






    Flutter 解决使用Json序列化工具json_serializable不生成.g.dart文件

    在使用Flutter的过程中,想去自己封装一个转model的类,后来写着写着发现根本没法弄,于是就去中文官网看看。

    接着就看到了json_serializable,然后就照着做呗,导入package,导入头文件,声明@JsonSerializable(),创建类,属性。然后

    flutter packages pub run build_runner build,就没然后了,

    没有生成.g.dart,命令行到最后还提醒Succeeded,我就蒙蔽了。

    于是反复去工程里查找,就是没找到,于是乎,我又重新创建一个新的工程,再导入一遍,还是不行,我就去github上json_serializable找源码查看,然后试着将

    part 'model.g.dart';

    敲上去,发现代码是报错的,这时候再运行一次flutter packages pub run build_runner build

    于是乎就在Model.dart文件下生成了.g.dart文件,欲哭无泪。

    附带一个标准生成.g.dart的写法:

    首先在pubspec.yaml文件里面导入依赖库,Ctrl + S或者点击一下右上角的下载箭头(VS Code),getPackage一下,注意文字的对齐

    1.  
      dependencies:
    2.  
      flutter:
    3.  
      sdk: flutter
    4.  
      json_annotation: ^2.0.0
    5.  
       
    6.  
      dev_dependencies:
    7.  
      flutter_test:
    8.  
      sdk: flutter
    9.  
      json_serializable: ^2.0.0
    10.  
      build_runner: ^1.0.0

    然后来到你的model类里面

    复制过去(注意现在代码是报错的),只用改类名和属性名,其他不用管

    运行一次

    1.  
      import 'package:json_annotation/json_annotation.dart';
    2.  
       
    3.  
      part '你的类名.g.dart';
    4.  
       
    5.  
      @JsonSerializable()
    6.  
       
    7.  
      class 你的类名 {
    8.  
      var name;
    9.  
      var age;
    10.  
      你的类名(this.name,this.age);
    11.  
      factory 你的类名.fromJson(Map<String,dynamic> json) => _$你的类名FromJson(json);
    12.  
      Map<String,dynamic> toJson() => _$你的类名ToJson(this);
    13.  
       
    14.  
      }

    cd 你的工程目录

    flutter packages pub run build_runner build //使用 build_runner 生成 .g.dart 文件

    flutter packages pub run build_runner wacth //监控生成文件,如果有改动时自动生成/更新 .g.dart 文件

    就ok了

    还没有生成.g.dart文件或者报错的运行下面的命令

    cd 你的工程目录

    flutter packages pub run build_runner build --delete-conflicting-outputs  //删除并重新创建.g.dart文件

    没有生成的再运行一下

    flutter packages pub run build_runner build

     
     
  • 相关阅读:
    Linux Shell脚本Ldd命令原理及使用方法
    没有判断好形势,哪怕再多的传感器说有问题,核心的那个几仪表就是在歌舞升平
    JVM
    leetcode第一刷_Count and Say
    html 前台通用表单
    BP神经网络算法学习
    flash的dragonbone插件导入cocos2d的注意事项
    445port入侵具体解释
    google域名邮箱申请 gmail域名邮箱申请(企业应用套件)指南
    SQL性能优化工具TKPROF
  • 原文地址:https://www.cnblogs.com/sundaysandroid/p/13445978.html
Copyright © 2020-2023  润新知