在使用Flutter的過程中,想去自己封裝一個轉model的類,后來寫著寫著發(fā)現(xiàn)根本沒法弄,于是就去中文官網(wǎng)看看。
接著就看到了json_serializable,然后就照著做唄,導入package,導入頭文件,聲明@JsonSerializable(),創(chuàng)建類,屬性。然后
flutter packages pub run build_runner build,就沒然后了,
沒有生成.g.dart,命令行到最后還提醒Succeeded,我就蒙蔽了。
于是反復去工程里查找,就是沒找到,于是乎,我又重新創(chuàng)建一個新的工程,再導入一遍,還是不行,我就去github上json_serializable找源碼查看,然后試著將
part 'model.g.dart';
敲上去,發(fā)現(xiàn)代碼是報錯的,這時候再運行一次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類里面
復制過去(注意現(xiàn)在代碼是報錯的),只用改類名和屬性名,其他不用管
運行一次
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) => _你的類名ToJson(this);
}
cd 你的工程目錄
flutter packages pub run build_runner build //使用 build_runner 生成 .g.dart 文件
flutter packages pub run build_runner wacth //監(jiān)控生成文件,如果有改動時自動生成/更新 .g.dart 文件
就ok了
還沒有生成.g.dart文件或者報錯的運行下面的命令
cd 你的工程目錄
flutter packages pub run build_runner build --delete-conflicting-outputs //刪除并重新創(chuàng)建.g.dart文件
沒有生成的再運行一下
flutter packages pub run build_runner build
————————————————
版權聲明:本文為CSDN博主「辰辰遠」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/worship_Kill/article/details/102892349