特定のオプションの属性が選択されたときにオプションのリストがあり、リスト内のオプションの選択された位置に属性オブジェクトを保存します。これで、選択した属性オブジェクトを含むオプションリストができました。私の目的は、オプションリストを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>();
各アイテムを個別に変換する必要があります
var json = jsonEncode(opAttrList.map((e) => e.toJson()).toList());
またはtoEncodable
関数を渡します
var json = jsonEncode(opAttrList, toEncodable: (e) => e.toJsonAttr());