FlutterJsonBeanFactory插件json使用

FlutterJsonBeanFactory是用来生成dart的json实体类和根据配置生成factory的idea全家桶的插件.

首先必须添加 intl: any 到 pubspec.yaml

对比其他插件优势

①:可以自定义后台返回值,datetime解析格式,是否参与解析和被解析

使用注解@JSONField


image.png

其中name: "list"的list就是后台返回字段名称,deserialize(默认true)是否参与fromJson解析,serialize(默认true)是否参与tojson,

②:可以解析完整字段json

比如包含如下json


image.png

可以解析出来list中map的所有字段,并且每个list的map字段不同或者为null问题有会做出处理


image.png

③可以自动生成helper文件,后期修改or添加entity中的字段,只需一个快捷键(alt+j)就可以重新生成文件,并且会删除多余文件.

image.png

helper文件内容


image.png

④自动生成JsonConvert方便配合网络请求封装进行泛型处理

直接传递上面生成的entity就可以自动根据map解析出对应实例,并自动赋值


image.png

⑤使用gif图

beantojson_factory.gif

⑥如果你不想在项目中使用该插件,那么可以在pubspec.yaml配置,当然需要改成enable为false

image.png

网络请求实例


image.png

dio请求部分


image.png

安装插件

7BDB7CCB-708F-4EFD-8BEF-00ED55BA0AA8.png

安装完后重启ide,会发现tools里多了FlutterJsonBeanFactory一个选项

image.png

在对应目录右键new,会有个dart bean class file from json,点击这个选项

image.png

弹出一个输入类名和和json串的弹框,例:填入类型abc和json串

04F2D0C3-F815-4A24-B949-8E0E9D400031.png

点击make按钮会生成a_b_c_entity.dart文件

88E5E9B4-17F8-4973-B172-53CB1398AEC0.png

这些操作完成后自动生成如下文件


A5E6FF53-59EE-474C-B3FA-D87665C7191D.png

@JSONField作用在Field时,其name不仅定义了输入key的名称,为了防止后台返回数据不规范,但是flutter端需要按照驼峰命名
a_b_c_entity_helper.dart类提供了eitity类的tojson和fromjson代理方法
json_convert_content.dart提供了json_convert_content.dart.fromJsonAsT方法 根据泛型来解析json成对象

下一篇(网络类使用)地址,觉得有用,可以给点个喜欢

推荐阅读更多精彩内容