Flutter:如何将列表转换为JSON

时间:2019-11-25 18:04:22

标签: json list flutter

我正在尝试将列表转换为Json并将此json发送到DB。

我的名单如下

List<DeviceInfo> deviceInfoList = [];

class DeviceInfo {
  final String platform;
  final String deviceModel;
  final bool isPhysicalDevice;
  final String deviceId;
  final String imei;
  final String meid;
  final String platformVersion;
  final String projectVersion;
  final String projectCode;
  final String projectAppID;
  final String projectName;

  DeviceInfo(
      {this.platform,
      this.platformVersion,
      this.deviceModel,
      this.isPhysicalDevice,
      this.deviceId,
      this.imei,
      this.meid,
      this.projectVersion,
      this.projectCode,
      this.projectAppID,
      this.projectName});
}

我的列表包含String和boolean,我经历过this example,但不知道如何在该map函数中映射string和bool。 有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

可帮助从JSON进行编码和解码的选项对:json_serializable包是一种为您生成的样板序列化/反序列化代码的好方法。在built_value中有如何使用它(和Flutter samples repo,功能强大,但使用起来更复杂)的示例。

答案 1 :(得分:1)

Map<String,dynamic> toJson(){
    return {
      "name": this.name,
      "number": this.number,
      "surname": this.surname,
    };
  }

static List encondeToJson(List<DeviceInfo>list){
    List jsonList = List();
    list.map((item)=>
      jsonList.add(item.toJson())
    ).toList();
    return jsonList;
}

List jsonList = Device.encondeToJson(deviceInfoList);
print("jsonList: ${jsonList}");

这是我记得的最短的方法。