Android 转换列表<;T>;飘飘然

Android 转换列表<;T>;飘飘然,android,json,dart,flutter,Android,Json,Dart,Flutter,我有一个选项列表当从特定选项中选择属性时,我会将属性对象保存在列表中选项的选定位置。 现在,我有了一个选项列表,其中包含选定的属性对象。我的目标是将选项列表转换为JSON对象,但属性不为null。在这种情况下,当用户未选择选项的属性时,属性对象可以为null class OptionAttribute{ String _grouprowid; String _groupname; Attribute _selectedAttrObject Map<String, dynami

我有一个选项列表当从特定选项中选择属性时,我会将属性对象保存在列表中选项的选定位置。 现在,我有了一个选项列表,其中包含选定的属性对象。我的目标是将选项列表转换为JSON对象,但属性不为null。在这种情况下,当用户未选择选项的属性时,属性对象可以为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
  };

}
class OptionAttribute{
字符串_grouprowid;
字符串_groupname;
属性_selectedAttrObject
映射到JSON()=>{
“属性”:\u选择的属性对象,
};
}
类属性{
字符串_attributerowid;
字符串_grouprowid;
字符串_attributename;
线重;
映射到jsonattr()=>{
'属性ID':_attributerowid,
“groupid”:_grouprowid,
“attrname”:\u attributename
};
}
当列表没有任何null属性时,我想将下面的列表转换为JSON对象

List<OptionAttribute> opAtrrList=new List<OptionAttribute>();
List opatrlist=new List();

您需要分别转换每个项目

var json = jsonEncode(opAttrList.map((e) => e.toJson()).toList());
或者将
传递给encodable
函数

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

显示“MappedListIterable”的
实例的错误,其中我做错了
“属性”:\u selectedAttrObject,
应该是
“属性”:\u selectedAttrObject.toJsonAttr(),
现在显示错误
将对象转换为可编码对象失败:添加
的'Attribute'实例可能会执行
的'Attribute':_selectedAttrObject?.toJson(),
或者如果您希望
的'Attribute':null也被删除,请使用
映射到json()=>\u selectedAttrObject!=无效的{'attribute':_selectedAttrObject,}:{}很高兴听到:)