_ $ UserSerializerMixin我需要吗?

时间:2018-09-10 12:15:23

标签: serialization dart flutter

当我找到本指南时,我在序列化方面苦苦挣扎 https://flutter.io/json/ 在其中找到:

import 'package:json_annotation/json_annotation.dart';

part 'user.g.dart';

@JsonSerializable()
class User extends Object with _$UserSerializerMixin{
  final String name;
  final String email;

  User(this.name, this.email);

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

我遵循了指南(也运行flutter软件包pub run build_runner watch命令),除_$UserSerializerMixin之外,其他一切都很好。它说:类只能混入其他类。我该怎么办?

1 个答案:

答案 0 :(得分:0)

错误是因为_$UserSerializerMixin类不在生成的用户中。g.dart。

https://flutter.io/json/#serializing-json-using-code-generation-libraries处的示例较旧,仅使用该页面上示例pubspec.yaml中显示的程序包版本运行。

如果您使用最新的软件包,请参见此处的示例:https://pub.dartlang.org/documentation/json_serializable/latest/

请注意,不再需要使用_$UserSerializerMixin来扩展他们的课程。使用v1.x的软件包,将创建_$UserToJson。现在,更改班级变得更加简单。

(我挣扎了很长时间,因为我在pubspec.yaml中使用了最新的软件包版本,但使用的是旧示例。)