如何在flutter dart上正确处理嵌套的json数据

问题描述 投票:0回答:1

我的请求中是 flutter 和 dart 语言的新手,我希望能够正确处理嵌套的 json 响应,因为我在下面的 json 中有此数据

这是我的 json 数据:

[
    {
        "name": "John",
        "age": 20,
        "address": [
            {
               "street": "103   Main St",
                "city": "gghhd"
            },
            {
                "street": "103     Main St",
                "city": "Anytown"
            },
            {
                "street": "13 Grog St",
                "city": "Anytown"
            },
            {
                "street": "3 delk St",
                "city": "upwn"
            }
        ]
      }
     ]

这是我生成的在线 json:

class Autogenerated {
   String? name; int? age;
   List<Address>? address;

   Autogenerated({this.name,  this.age, this.address});
          Autogenerated.fromJson(Map<String, dynamic> json) {
    name = json['name'];
    age = json['age'];
    if (json['address'] != null) {
      address = <Address>[];
         json['address'].forEach((v) {
        address!.add(new   Address.fromJson(v));
      });
    }
   }
     Map<String, dynamic>   toJson() {
    final Map<String, dynamic>    data = new Map<String, dynamic>();
    data['name'] = this.name;
    data['age'] = this.age;
    if (this.address != null) {
      data['address'] = this.address!.map((v) => v.toJson()).toList();
    }
    return data;
    }
   }
   class Address {
   String? street;
   String? city;
   Address({this.street,  this.city});
  Address.fromJson(Map<String, dynamic> json) {
    street = json['street'];
    city = json['city'];
     }
  Map<String, dynamic> toJson(){
    final Map<String, dynamic>   data = new Map<String, dynamic>();
    data['street'] =    this.street;
    data['city'] = this.city;
    return data;
    }
    }

我想要有一个函数将我的 json 数据传递给furture.builder,以便在列表视图中包含所有地址。

json flutter dart nested response
1个回答
0
投票

你可以这样使用

  List<Autogenerated> arrUserList = (json.decode(jsonString) as List)
  .map((data) => Autogenerated.fromJson(data))
  .toList();
© www.soinside.com 2019 - 2024. All rights reserved.