как получить List <myClass>из другого элемента List, я получаю CastList - PullRequest
1 голос
/ 18 июня 2020

Моя ошибка:

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

Я получаю список с сервера, используя Json Я получаю его в нужном мне формате

этот класс содержит еще один список другого класса и я не могу с ним взаимодействовать. когда я пытаюсь вытащить что-то из встроенного списка, я получаю сообщение об ошибке, и список отображается как CastList

my class:

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 все в порядке, проблема в списке

1 Ответ

0 голосов
/ 19 июня 2020

Я использовал json код аннотации и автогенерации, это решило проблемы с десериализацией вложенного списка, но количество файлов в проекте значительно увеличилось, не очень хорошо

...