flutter解析简单的Json数据在前面flutter网络请求(Dio)中已经讲过,这里解析的是多层嵌套的Json数据
这里我们要解析的数据接口来自玩安卓网站https://www.wanandroid.com/article/list/0/json
由图可以看出,这里的数据是Map嵌套Map再嵌套List
建立数据模型
数据模型类的建立我们可以利用网上的一些工具进行实现,这里给出两个
https://autocode.icu/jsontodart
https://javiercbk.github.io/json_to_dart/
把Json语句复制在左边,点击CONVERT TO DART即可在右边生成相应的模型类
使用
这里网络请求依然是使用的Dio,依赖添加等操作不在进行描述直接上代码
_getDatas() async {
var api = 'https://www.wanandroid.com/article/list/0/json';
var result = await Dio().get(api);
var list = AutoGenerate.fromJson(result.data);
print(result);
print(result.runtimeType);
print(result.data);
print(result.data is Map);
print(list is AutoGenerate);
List itemList = list.data.datas;
itemList.forEach((value) {
print(value.link);
});
}
运行可知var result = await Dio().get(api);
获取到的result是一个Response<dynamic>
类型,result.data是一个Map类型(代表Json嵌套数据最外层的Map),var list = AutoGenerate.fromJson(result.data)
得到的是一个AutoGenerate
的对象,List itemList = list.data.datas
得到最内层的Datas对象的集合,然后在通过遍历集合对象得到每个对象属性的值