You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何序列化嵌套对象数组?已实现反序列化

Flutter嵌套对象数组序列化实现(基于json_serializable)

既然你已经给嵌套类配置了@JsonSerializable(explicitToJson: true),并且成功生成了.g.dart文件,那每个MyModel实例都会自动拥有toJson()方法(用于将单个对象转为Map<String, dynamic>),嵌套对象的序列化也会被正确处理。

直接按下面的方式实现serialize函数即可:

String serialize(List<MyModel> data) {
  // 将List中的每个MyModel转为Map,再整理成List<Map>结构
  final List<Map<String, dynamic>> jsonList = data.map((model) => model.toJson()).toList();
  // 用jsonEncode将List<Map>转为标准JSON字符串
  return jsonEncode(jsonList);
}

调用方式完全符合你的预期:

String myStrVar = serialize(myNestedObjVar);

关键说明

  • explicitToJson: true的核心作用就是让嵌套对象的toJson()方法被自动触发,不需要你手动处理多层嵌套的序列化逻辑
  • 确保已经执行过代码生成命令(比如flutter pub run build_runner build),.g.dart文件中已经生成了正确的toJson()实现

内容的提问来源于stack exchange,提问作者user3262353

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:52:03