美文网首页
Flutter 解决使用Json序列化工具json_serial

Flutter 解决使用Json序列化工具json_serial

作者: 鬼才冯三郎 | 来源:发表于2021-06-08 18:27 被阅读0次

    在使用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一下,注意文字的对齐
    dependencies:
    flutter:
    sdk: flutter
    json_annotation: ^4.0.1

    dev_dependencies:
    flutter_test:
    sdk: flutter
    json_serializable: ^4.0.0
    build_runner: ^2.0.4

    然后来到你的model类里面

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

    运行一次
    import 'package:json_annotation/json_annotation.dart';

    part '你的类名.g.dart';

    @JsonSerializable()

    class 你的类名 {
    var name;
    var age;
    你的类名(this.name,this.age);
    factory 你的类名.fromJson(Map<String,dynamic> json) => _你的类名FromJson(json); Map<String,dynamic> toJson() => _你的类名ToJson(this);

    }

    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
    ————————————————
    版权声明:本文为CSDN博主「辰辰远」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/worship_Kill/article/details/102892349

    相关文章

      网友评论

          本文标题:Flutter 解决使用Json序列化工具json_serial

          本文链接:https://www.haomeiwen.com/subject/uebqeltx.html