flutter解析多层嵌套的Json数据(Dio)

flutter解析多层嵌套的Json数据

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对象的集合,然后在通过遍历集合对象得到每个对象属性的值

猜你喜欢

转载自blog.csdn.net/m0_46527751/article/details/123318500