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
相关产品推荐
相关产品推荐

