使用Dart语言解析嵌套的JSON数组并将其放在Model类中 [英] Parse Nested JSON Array and put it in a Model class using Dart Language

查看:502
本文介绍了使用Dart语言解析嵌套的JSON数组并将其放在Model类中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

关于我的问题此处

我想解析一个JSON数组而不在JSON数组中包含键,并将其放在Model类中.

I want to parse a JSON array without a key within JSON array and put it in a Model class.

这是我要解析的JSON数组.

here is a JSON Array that I want to parse.

[
    {
        "pk": 100,
        "user": 5,
        "name": "Flutter",
        "details": "Fluttery",
        "images": [
            89,
            88,
            87,
            86
        ],
        "priority": 5
    },
    {
        "pk": 99,
        "user": 5,
        "name": "",
        "details": "h",
        "images": [],
        "priority": 5
    },
    {
        "pk": 98,
        "user": 5,
        "name": "Flutter",
        "details": "Fluttery",
        "images": [
            85
        ],
        "priority": 5
    },
]

我已经成功解析了主数组,但是无法解析包含整数数组的images键.我想把它放到Model类中.请帮忙.

I have successfully parse the main Array but I cannot parse the images key that contains an array of integers. I want to put it into Model class. please help.

谢谢!

推荐答案

您可以这样操作:

    final jsonList = json.decode(response.body) as List;
    final userList = jsonList.map((map) => User.fromJson(map)).toList();

用户类别

        class User {
          final int pk;
          final String name;
          final List<int> images;

          User._({this.pk, this.name, this.images});

          factory User.fromJson(Map<String, dynamic> json) {
            return new User._(
                pk: json['pk'],
                name: json['name'],
                images:  (json['images'] as List).map((map) => int.parse("$map")).toList());
          }
        }

打印数据

    for (var i = 0; i < userList.length; i++) { 
       print(userList[i].name);
       final imageList = userList[i].images;
       for (var j = 0 ; j < imageList.length; j++){
          print("image: ${imageList[j]}");
       }

    }

这篇关于使用Dart语言解析嵌套的JSON数组并将其放在Model类中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆