将对象集放入JSON

时间:2019-02-15 17:19:59

标签: json flutter

如何将一组对象放到Json。似乎这些代码根本不好用

Future<File> writeBasket(Set<Item> listItems) async {

  final file = await _localFile;
  var jsonString = listItems.map((Item item) {
    return jsonEncode(item);
  });

  return file.writeAsString(jsonString.toString());
}

1 个答案:

答案 0 :(得分:0)

确保Item具有toJson方法,例如:

class Item {
  String val1;

  Item(this.val1);

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

与json中的集合最接近的等效项是列表,因此请在调用json.encode之前将您的集合转换为列表。

  Set<Item> items = Set<Item>()..add(Item('xxx'))..add(Item('yyy'));
  String j = json.encode(items.toList());
  print(j);

打印[{"val1":"xxx"},{"val1":"yyy"}],您可以将其保存到文件中。