【问题标题】:Convert List<T> into json in flutter在颤动中将 List<T> 转换为 json
【发布时间】:2019-07-30 04:26:45
【问题描述】:

我有一个选项列表,当属性被选中一个特定选项时,我将在列表中的选项的选项位置保存属性对象。 现在我有一个带有所选属性对象的选项列表。我的目标是将选项列表转换为 JSON 对象,但当属性不为空时。在这种情况下,当一个人没有选择选项的属性时,属性对象可以为空。

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
  };

}

当列表没有任何空属性时,我想将下面的列表转换为 JSON 对象。

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

【问题讨论】:

    标签: android json dart flutter


    【解决方案1】:

    您需要单独转换每个项目

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

    或传递toEncodable 函数

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

    【讨论】:

    • 显示Instance of 'MappedListIterable&lt;OptionAttribute, Map&lt;String, dynamic&gt;&gt;的错误我做错了
    • 'attribute': _selectedAttrObject, 应该是'attribute': _selectedAttrObject.toJsonAttr(),
    • 现在显示错误Converting object to an encodable object failed: Instance of 'Attribute'
    • 添加? 可能会做'attribute': _selectedAttrObject?.toJson(), 或者如果你想删除'attribute': null,请使用Map&lt;String, dynamic&gt; toJson() =&gt; _selectedAttrObject != null ? { 'attribute': _selectedAttrObject, } : {};
    • 很高兴听到:)
    猜你喜欢
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 2017-05-06
    • 2020-04-16
    • 2020-09-15
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多