【问题标题】:Flutter load json response to ListFlutter 将 json 响应加载到 List
【发布时间】:2021-09-30 11:29:42
【问题描述】:

此 json 响应适用于以下列表。

[{"id":"1","ename":"KING","sal":"5000"............

List<Emp> emp= (json.decode(response.body) as List)
        .map((data) => Emp.fromJson(data))
        .toList();

但是在启动 json 时如何在列表中加载数据留在 items

{"items":[{"id":1,"ename":"KING","sal":5000............

【问题讨论】:

    标签: json flutter api


    【解决方案1】:

    使用json.decode(response.body)['items'] 代替json.decode(response.body)

    一个例子:

    import 'dart:convert';
    
    void main() {
      
      // sample body.response
    
      final j = '''{
      "items": [
      {"id":"1","ename":"KING","sal":"5000"},
      {"id":"2","ename":"KING","sal":"5000"}
      ]
      }''';
    
      List<Emp> emp = (json.decode(j)['items'] as List)
          .map((data) => Emp.fromJson(data))
          .toList();
    
      print(emp);
    }
    
    class Emp {
      String id;
      String ename;
      String sal;
    
      Emp({this.id, this.ename, this.sal});
    
      Emp.fromJson(Map<String, dynamic> json) {
        id = json['id'];
        ename = json['ename'];
        sal = json['sal'];
      }
    
      Map<String, dynamic> toJson() {
        final Map<String, dynamic> data = new Map<String, dynamic>();
        data['id'] = this.id;
        data['ename'] = this.ename;
        data['sal'] = this.sal;
        return data;
      }
    }
    

    【讨论】:

      【解决方案2】:
      List<Emp> emp= (json.decode(response.body)["items"] as List)
              .map((data) => Emp.fromJson(data))
              .toList();
      

      【讨论】:

        猜你喜欢
        • 2021-10-11
        • 2020-09-03
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 2017-05-06
        • 2018-08-28
        • 2018-09-20
        • 2023-01-17
        相关资源
        最近更新 更多