Flutter json_serializable

 

1 添加項目依賴

dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^1.1.3
  json_serializable: ^3.2.0

2 創建實體類

  可以使用json_serializable庫,將json 拷貝進去自動生成(簡單json可以生成,在嵌套一層便會提示“不是一個正確的json”,不是特別好用)

將生成得subject.dart文件拷貝到項目中,提示如下異常

3 生成.g.dart文件

cd 你的工程目錄

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

flutter packages pub run build_runner wacth    //監控生成文件,如果有改動時自動生成/更新 .g.dart 文件

還沒有生成.g.dart文件或者報錯的運行下面的命令

cd 你的工程目錄

flutter packages pub run build_runner build --delete-conflicting-outputs  //刪除並重新創建.g.dart文件

沒有生成的再運行一下

flutter packages pub run build_runner build

 

4、異常

F:\demo\flutter_demo\LeanDemo>flutter packages pub run build_runner build
[INFO] Generating build script...
[INFO] Generating build script completed, took 282ms

[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 17.8s

[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 1.0s

[INFO] Checking for unexpected pre-existing outputs....
[INFO] Found 1 declared outputs which already exist on disk. This is likely because the`.dart_tool/build` folder was deleted, or you are submitting generated files to your source repository.
[SEVERE] Conflicting outputs were detected and the build is unable to prompt for permission to remove them. These outputs must be removed manually or the build can be run with `--delete-conflicting-outputs`. The outputs are: lib/a
/model/entity/subject.g.dart
pub finished with exit code 78

找到一個已聲明的輸出,該輸出已存在於磁盤上。這可能是因爲“.dart_tool/build”文件夾已刪除,或者您正在將生成的文件提交到源存儲庫。

運行flutter packages pub run build_runner build不光生成了xxxx.g.dart。同時還成了一個dart_tool/build目錄,只運行app是沒有問題的,之前xxxx.g.dart還是可用的。但是再生成新的xxxx.g.dart因爲缺少之前生成dart_tool/build目下的文件就會報錯。

 

解決:


//清除之前生成的文件,如果直接運行下面的不行。可以先嚐試運行這個
 flutter packages pub run build_runner clean
//可以直接運行這個
 flutter packages pub run build_runner build --delete-conflicting-outputs

//在重新生成.g.dart
flutter packages pub run build_runner build

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章