Flutter 中如何处理Json
Flutter给我们提供了 dart:convert 包,我们可以通过:
json.decode(json) 来序列化json
首先记得先导包:
然后
可以看到,我们这样取值是需要手动的敲字段来获取数据的,一旦字段比较多的话,就很麻烦
Flutter Json转实体类(一键生成)
在开发过程中,我们一般都是使用插件或工具一键生成实体类的,这样极大的提高了开发效率,目前我们可以通过在线生成和安装插件生成的方式来一键生成Dart类。
方式一:在线生成
1.首先打开 json_to_dart
https://javiercbk.github.io/json_to_dart/
页面如下:
2.将json数据赋值到输入框中,点击创建Dart类,然后右边就是生成好的Dart代码,类名可以复制到编辑器后自行修改
3.创建一个Dart类,将类名自行修改一下
4,使用方式如下
方式二:安装FlutterJsonBeanFactory插件生成
首先安装FlutterJsonBeanFactory这个插件,安装方式很简单,这里我就不说了。
安装完成后右键包目录,选择new
然后选择dart bean class File from JSON
然后将json数据粘贴至输入框,输入类名,点击make即可
这样实体类就生成好了
方式三:使用json_model自动生成
1.在项目根目录新建jsons文件夹并将json数据新建成为文件,在lib目录下新建包名为models
注意:这两个文件夹的名字都必须为jsons和models
2、加入依懒
注意:这里添加完json_serializable相关依赖之后还添加了json_model的依赖,这就是快捷生成的关键,还有如果json中引用了其他model可以使用如下方式
{
"name":"wendux",
"father":"$user",//可以通过"$"符号引用其它model类
"friends":"$[]user",//可以通过"$[]"来引用数组
"keywords":"$[]String",//同上
"age":20
}
3.完成上面的操作之后
在当前项目的根目录执行如下命令:flutter packages pub run json_model
控制台打印如下日志就成功了
注意:如果json文件中加了注释可能会报错,需要删除注释,错误信息如下
其实,我们也可以不使用命令行的方式自动生成,
用run(['src=jsons'])的方法也可以,run方法为json_model暴露的方法。
json_model:https://github.com/flutterchina/json_model