Как создать карту в цикле? - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь построить карту, чтобы добавить ее в пожарный.

Продукт Класс:

class Produkt{
  String name;
  int anzahl;

  Produkt({
    this.name,
    this.anzahl,
  });

  factory Produkt.fromJson(Map<String, dynamic> parsedJson){
    return Produkt(
        name:parsedJson['Name'],
        anzahl:parsedJson['Anzahl']
    );
  }

  Map<String, dynamic> toProduktJson() =>
  {
    "Name" : name,
    "Anzahl" : anzahl
  };
}

ПродуктЛист Класс:

  class ProduktList{
  final List<Produkt> produkte;

  ProduktList({
    this.produkte,
  });

  factory ProduktList.fromJson(Map<String, dynamic> parsedJson){
    var list = parsedJson["Produkte"] as List;
    List<Produkt> produkte = list.map((i) => Produkt.fromJson(i.cast<String, dynamic>())).toList();

    return ProduktList(
        produkte: produkte,
    );
  }

  Map<String, dynamic> toProdukteJson() =>
  {
    "Produkte" : [
      produkte[0].toProduktJson(),
      produkte[1].toProduktJson(),
      produkte[2].toProduktJson(),
    ]
  };
}

Я хотел, чтобы карта выглядела так:

{
    "Produkte" : [
      produkte[0].toProduktJson(),
      produkte[1].toProduktJson(),
      produkte[2].toProduktJson(),
    ]
  };

Но если длина Списка равна 2, у Карты должно быть 2, а у Списка длина 10, у Карты должно быть 10 записей.

Как я могу это сделать? Пожалуйста, помогите мне. Спасибо

1 Ответ

0 голосов
/ 14 января 2019

Вариант будет следующим:

  Map<String, dynamic> toProdukteJson() {
    Map map = new Map<String, dynamic>();
    if (produkte != null) {
      map["produkte"] = produkte.map((produkt) => produkt.toJson()).toList();
    }
    return map;
  }


class Produkt {
  final String id;
  ...

  Produkt(this.id, ...);

  Map toJson() => {'id' : id, ...};
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...