Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何在循环中创建贴图?_Dart_Flutter_Google Cloud Firestore - Fatal编程技术网

Dart 如何在循环中创建贴图?

Dart 如何在循环中创建贴图?,dart,flutter,google-cloud-firestore,Dart,Flutter,Google Cloud Firestore,我尝试构建一个地图,将其添加到firestore中 产品类别: class Produkt{ String name; int anzahl; Produkt({ this.name, this.anzahl, }); factory Produkt.fromJson(Map<String, dynamic> parsedJson){ return Produkt( name:parsedJson['Name'],

我尝试构建一个地图,将其添加到firestore中

产品类别:

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
  };
}
但是如果列表produkte的长度为2,则映射应为2,如果列表的长度为10,则映射应为10个条目

我该怎么做? 请帮帮我。
谢谢

选项如下:

  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, ...};
}
Map toProdukteJson(){
Map Map=newmap();
if(produkte!=null){
map[“produkte”]=produkte.map((produkt)=>produkt.toJson()).toList();
}
返回图;
}
类产品{
最终字符串id;
...
Produkt(this.id,…);
映射到JSON()=>{'id':id,…};
}

这不起作用,因为produkte是一个ProduktWell列表,它假设您的Podukt类中有一个
Map to json()=>..
方法。我已经更改了答案,以考虑
toJson()
方法。
{
    "Produkte" : [
      produkte[0].toProduktJson(),
      produkte[1].toProduktJson(),
      produkte[2].toProduktJson(),
    ]
  };
  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, ...};
}