web-dev-qa-db-ja.com

List <T>をフラッターでjsonに変換する

特定のオプションの属性が選択されたときにオプションのリストがあり、リスト内のオプションの選択された位置に属性オブジェクトを保存します。これで、選択した属性オブジェクトを含むオプションリストができました。私の目的は、オプションリストをJSONオブジェクトに変換することですが、属性がnullでない場合です。その場合、人がオプションの属性を選択していなければ、Attributeオブジェクトはnullになる可能性があります。

class OptionAttribute{
 String _grouprowid;
 String _groupname;
 Attribute _selectedAttrObject

   Map<String, dynamic> toJson() => {
    'attribute': _selectedAttrObject,
  };
}

class Attribute{

  String _attributerowid;
  String _grouprowid;
  String _attributename;
  String _weight;

   Map<String, dynamic> toJsonAttr() => {
    'attrid': _attributerowid,
    'groupid': _grouprowid,
    'attrname': _attributename
  };

}

リストにnull属性がない場合、以下のリストをJSONオブジェクトに変換したいと思います。

List<OptionAttribute> opAtrrList=new List<OptionAttribute>();
3
Farhana

各アイテムを個別に変換する必要があります

var json = jsonEncode(opAttrList.map((e) => e.toJson()).toList());

またはtoEncodable関数を渡します

var json = jsonEncode(opAttrList, toEncodable: (e) => e.toJsonAttr());
8