使用Dart语言解析嵌套的JSON数组并将其放入模型类中

3

关于我的问题在这里

我想解析一个没有键的JSON数组并将其放入模型类中。

这是我想要解析的JSON数组。

[
    {
        "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 键。我想将其放入模型类中,请帮忙。

谢谢!

2个回答

4
你可以这样做:
    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]}");
       }

    }

1
谢谢!我会尝试这个解决方案,并会尽快回来这里。 :) - Martin Rupert Bulquerin
可以了!但是如何使用嵌套的for循环调用图像呢?我使用以下代码来调用名称。 for (var i = 0; i < userList.length; i++) { print(userList[i].name);} - Martin Rupert Bulquerin

0

请参考使用dart:convert手动序列化JSON部分这里。如果您仍然遇到问题,请发布错误/困难。


无法将解码后的 JSON 传递给 Map,因为使用 json.decode(result) 的结果是一个数组。 - Martin Rupert Bulquerin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接