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

How to handle nested json data correctly on flutter dart

提问人:Eniedi Monday 提问时间:10/21/2023 更新时间:10/21/2023 访问量:38

问:

在我的请求中,我是 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,以便在listview中拥有所有地址。

json flutter dart 嵌套 响应

评论


答:

0赞 Chirag Sondagar 10/21/2023 #1

你可以这样使用

  List<Autogenerated> arrUserList = (json.decode(jsonString) as List)
  .map((data) => Autogenerated.fromJson(data))
  .toList();

评论

0赞 Eniedi Monday 10/21/2023
我如何获得我的问题的未来构建器列表视图