【问题标题】:how get List<myClass> from element another List, i get CastList如何从元素另一个列表中获取 List<Class>,我得到 Cast List
【发布时间】:2020-06-20 04:06:48
【问题描述】:

我的错误:

type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Food' in type cast

我从服务器获取列表,使用 fromJson 以我需要的格式获取它

这个类包含另一个类的另一个列表,我无法与之交互。当我尝试从内置列表中提取某些内容时,出现错误,并且列表显示为 CastList

我的班级:

class FoodGroup{
  @PrimaryKey()
  int id;

  String name;

  List<Food> foods;

  FoodGroup({this.name,
    this.id,
    this.foods});

  FoodGroup.map(dynamic obj) {
    this.id = obj["id"];
    this.foods = obj["foods"].cast<Food>();
    this.name = obj["name"];
  }

  Map<String, dynamic> toMap() {
    var map = new Map<String, dynamic>();
    map["id"] = id;
    map["foods"] = foods;
    map["name"] = name;
    return map;
  }

  FoodGroup.fromJson(Map<String, dynamic> json)
      : id = json['id'],
        foods = json['foods'].cast<Food>(),
        name = json['name'];
}

。 cast() 我需要从 json 解码:

var l = jsonDecode(r.body) as List;
foodTable = l.map((i) => FoodGroup.fromJson(i)).toList();

使用 FoodGroup 一切正常,问题出在列表中

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    我使用了json注解和自动生成代码,这样解决了反序列化嵌套列表的问题,但是项目中的文件数量明显增加,不是很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      相关资源
      最近更新 更多