Flutter:如何将列表转换为 JSON

Posted

技术标签:

【中文标题】Flutter:如何将列表转换为 JSON【英文标题】:Flutter: How to convert a List to JSON 【发布时间】:2020-03-21 02:11:08 【问题描述】:

我正在尝试将列表转换为 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);

我的列表包含字符串和布尔值,我已经通过this example 不知道如何在该映射函数中映射字符串和布尔值。 谁能帮我解决这个问题?

【问题讨论】:

这能回答你的问题吗? Flutter Json Encode List @luismiguelss 我的列表包含字符串和布尔值,我如何将其映射到您提供的链接中的函数。 Map toJson() return 您仍然可以将布尔值作为字符串处理,请查看this answer 非常感谢@luismiguelss 知道了。 这能回答你的问题吗? Convert List<T> into json in flutter 【参考方案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");

是我记忆中最短的方式。

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于Flutter:如何将列表转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 如何将地图从互联网 API 转换为列表?

在 Flutter 中,如何使用流 API 将项目列表转换为 Table 小部件?

Flutter:将整数列表转换为一行中的字符串列表

Flutter Dart:如何使用 2 个键将 List 转换为 Map

Flutter:将firestore快照转换为streambuilder中的列表

Flutter - 有啥方法可以将字符串转换为列表并将 list<String> 转换回字符串?