在使用Flutter的過(guò)程中,想去自己封裝一個(gè)轉(zhuǎn)model的類,后來(lái)寫(xiě)著寫(xiě)著發(fā)現(xiàn)根本沒(méi)法弄,于是就去中文官網(wǎng)看看。
接著就看到了json_serializable,然后就照著做唄,導(dǎo)入package,導(dǎo)入頭文件,聲明@JsonSerializable(),創(chuàng)建類,屬性。然后
flutter packages pub run build_runner build,就沒(méi)然后了,
沒(méi)有生成.g.dart,命令行到最后還提醒Succeeded,我就蒙蔽了。
于是反復(fù)去工程里查找,就是沒(méi)找到,于是乎,我又重新創(chuàng)建一個(gè)新的工程,再導(dǎo)入一遍,還是不行,我就去github上json_serializable找源碼查看,然后試著將
part 'model.g.dart';
敲上去,發(fā)現(xiàn)代碼是報(bào)錯(cuò)的,這時(shí)候再運(yùn)行一次flutter packages pub run build_runner build
于是乎就在Model.dart文件下生成了.g.dart文件,欲哭無(wú)淚。
附帶一個(gè)標(biāo)準(zhǔn)生成.g.dart的寫(xiě)法:
首先在pubspec.yaml文件里面導(dǎo)入依賴庫(kù),Ctrl + S或者點(diǎn)擊一下右上角的下載箭頭(VS Code),getPackage一下,注意文字的對(duì)齊
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
然后來(lái)到你的model類里面
復(fù)制過(guò)去(注意現(xiàn)在代碼是報(bào)錯(cuò)的),只用改類名和屬性名,其他不用管
運(yù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)控生成文件,如果有改動(dòng)時(shí)自動(dòng)生成/更新 .g.dart 文件
就ok了
還沒(méi)有生成.g.dart文件或者報(bào)錯(cuò)的運(yùn)行下面的命令
cd 你的工程目錄
flutter packages pub run build_runner build --delete-conflicting-outputs //刪除并重新創(chuàng)建.g.dart文件
沒(méi)有生成的再運(yùn)行一下
flutter packages pub run build_runner build
————————————————
版權(quán)聲明:本文為CSDN博主「辰辰遠(yuǎn)」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/worship_Kill/article/details/102892349