FlutterJsonBeanFactory是用來生成dart的json實(shí)體類和根據(jù)配置生成factory的idea全家桶的插件.
首先必須添加 intl: any 到 pubspec.yaml
對比其他插件優(yōu)勢
①:可以自定義后臺返回值,datetime解析格式,是否參與解析和被解析
使用注解@JSONField
image.png
其中name: "list"的list就是后臺返回字段名稱,deserialize(默認(rèn)true)是否參與fromJson解析,serialize(默認(rèn)true)是否參與tojson,
②:可以解析完整字段json
比如包含如下json
image.png
可以解析出來list中map的所有字段,并且每個list的map字段不同或者為null問題有會做出處理
image.png
③可以自動生成helper文件,后期修改or添加entity中的字段,只需一個快捷鍵(alt+j)就可以重新生成文件,并且會刪除多余文件.
image.png
helper文件內(nèi)容
image.png
④自動生成JsonConvert方便配合網(wǎng)絡(luò)請求封裝進(jìn)行泛型處理
直接傳遞上面生成的entity就可以自動根據(jù)map解析出對應(yīng)實(shí)例,并自動賦值
image.png
⑤使用gif圖
beantojson_factory.gif
⑥如果你不想在項目中使用該插件,那么可以在pubspec.yaml配置,當(dāng)然需要改成enable為false
image.png
網(wǎng)絡(luò)請求實(shí)例
image.png
dio請求部分
image.png
安裝插件
7BDB7CCB-708F-4EFD-8BEF-00ED55BA0AA8.png
安裝完后重啟ide,會發(fā)現(xiàn)tools里多了FlutterJsonBeanFactory一個選項
image.png
在對應(yīng)目錄右鍵new,會有個dart bean class file from json,點(diǎn)擊這個選項
image.png
彈出一個輸入類名和和json串的彈框,例:填入類型abc和json串
04F2D0C3-F815-4A24-B949-8E0E9D400031.png
點(diǎn)擊make按鈕會生成a_b_c_entity.dart文件
88E5E9B4-17F8-4973-B172-53CB1398AEC0.png
這些操作完成后自動生成如下文件
A5E6FF53-59EE-474C-B3FA-D87665C7191D.png
@JSONField作用在Field時,其name不僅定義了輸入key的名稱,為了防止后臺返回數(shù)據(jù)不規(guī)范,但是flutter端需要按照駝峰命名
a_b_c_entity_helper.dart類提供了eitity類的tojson和fromjson代理方法
json_convert_content.dart提供了json_convert_content.dart.fromJsonAsT方法 根據(jù)泛型來解析json成對象