在Flutter中将List <t>转换为json

时间:2019-03-08 06:50:53

标签: android json dart flutter

当选择特定选项的属性时,我有一个选项列表,然后将属性对象保存在列表中选项的所选位置。 现在我有一个带有其选定属性对象的选项列表。我的目的是将选项列表转换为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>();

1 个答案:

答案 0 :(得分:2)

您需要分别转换每个项目

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

或通过toEncodable函数

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