FlutterJsonBeanFactory是用來生成dart的json實(shí)體類和根據(jù)配置生成factory的idea全家桶的插件.
首先必須添加 intl: any 到 pubspec.yaml
對比其他插件優(yōu)勢
①:可以自定義后臺返回值,datetime解析格式,是否參與解析和被解析
使用注解@JSONField
其中name: "list"的list就是后臺返回字段名稱,deserialize(默認(rèn)true)是否參與fromJson解析,serialize(默認(rèn)true)是否參與tojson,
②:可以解析完整字段json
比如包含如下json
可以解析出來list中map的所有字段,并且每個list的map字段不同或者為null問題有會做出處理
③可以自動生成helper文件,后期修改or添加entity中的字段,只需一個快捷鍵(alt+j)就可以重新生成文件,并且會刪除多余文件.
helper文件內(nèi)容
④自動生成JsonConvert方便配合網(wǎng)絡(luò)請求封裝進(jìn)行泛型處理
直接傳遞上面生成的entity就可以自動根據(jù)map解析出對應(yīng)實(shí)例,并自動賦值
⑤使用gif圖
⑥如果你不想在項目中使用該插件,那么可以在pubspec.yaml配置,當(dāng)然需要改成enable為false
網(wǎng)絡(luò)請求實(shí)例
dio請求部分
安裝插件
安裝完后重啟ide,會發(fā)現(xiàn)tools里多了FlutterJsonBeanFactory一個選項
在對應(yīng)目錄右鍵new,會有個dart bean class file from json,點(diǎn)擊這個選項
彈出一個輸入類名和和json串的彈框,例:填入類型abc和json串
點(diǎn)擊make按鈕會生成a_b_c_entity.dart文件
這些操作完成后自動生成如下文件
@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成對象