首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flutter冻结:无法为`data`生成`toJson`代码,因为类型

flutter冻结:无法为`data`生成`toJson`代码,因为类型
EN

Stack Overflow用户
提问于 2021-11-12 17:35:08
回答 1查看 274关注 0票数 0

我正在尝试通过freezed和json_serializable创建我的模型:

代码语言:javascript
复制
import 'package:freezed_annotation/freezed_annotation.dart';

part 'language_response_model.freezed.dart';
part 'language_response_model.g.dart';

@freezed
abstract class LanguageResourceResponseModel
    with _$LanguageResourceResponseModel {
  const factory LanguageResourceResponseModel({
    required String id,
    required List<ResourceDataModel> data,
  }) = _LanguageResourceResponseModel;

  factory LanguageResourceResponseModel.fromJson(Map<String, dynamic> json) =>
      _$LanguageResourceResponseModelFromJson(json);
}

@freezed
abstract class ResourceDataModel {
  const factory ResourceDataModel({
    required String key,
    required String value,
  }) = _ResourceDataModel;

  factory ResourceDataModel.fromJson(Map<String, dynamic> json) =>
      _$ResourceDataModelFromJson(json);
}

但是我得到了这个错误:

代码语言:javascript
复制
Could not generate `toJson` code for `data` because of type `ResourceDataModel`.
package:test/splash/data/models/language_response_model.freezed.dart:144:33
    ╷
144 │   final List<ResourceDataModel> data;
    │                                 ^^^^
    ╵
[INFO] Running build completed, took 2.5s

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 189ms

[SEVERE] Failed after 2.7s

有什么问题吗?

代码语言:javascript
复制
dependencies:
  json_annotation: ^4.3.0
  json_serializable: ^6.0.1
dev_dependencies:
  build_runner: ^2.1.5
  flutter_launcher_icons: ^0.9.1
  freezed: ^0.15.1+1
  freezed_annotation: ^0.15.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-12 18:24:49

ResourceDataModel是一个@freezed-annotated类,因此需要混合使用_$ResourceDataModel

代码语言:javascript
复制
@freezed
abstract class ResourceDataModel with _$ResourceDataModel {
  // ...
}

如果没有这种混合,ResourceDataModel就不包含toJson()方法,因此LanguageResourceResponseModel.toJson()不能序列化List<ResourceDataModel>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69946923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档