前言:Dart本身是支持反射的,但是Flutter却没有像Gson或者FastJson这样优秀的json反序列化工具。因为反射在Flutter中是被禁止的,具体参考官方文档介绍:https://flutter.dev/docs/development/data-and-backend/json#is-there-a-gsonjacksonmoshi-equivalent-in-flutter
现在介绍一种比较好用的json反序列化工具:json_serializable,使用步骤如下:
1. 在 pabspec.ymal 文件中引入:
dependencies:
# 其他依赖包
json_annotation: ^2.0.0
dev_dependencies:
# 其他依赖包
# 运行"flutter packages pub run build_runner build",生成.g辅助文件。
# 运行"flutter packages pub run build_runner watch",可以实现文件监听,自动地为你后续创建的实体类生成对应的解析代码。 # 运行"flutter packages pub run build_runner watch",生成.g辅助文件。
build_runner: ^1.0.0
json_serializable: ^2.0.0
2. 编写实体类,可以使用这个网站快速生成想要的实体类。
可以选择直接把文件下载下来,粘贴到项目中。
3. 运行 "flutter packages pub run build_runner build" 生成 .g 后缀的文件。
然后就可以用了,可以自己选择修改个别类名,然后自己折腾吧。
写不是很详细,只是做个记录,方便以后用到再看,如果有疑问欢迎留言。