当我找到本指南时,我在序列化方面苦苦挣扎 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
之外,其他一切都很好。它说:类只能混入其他类。我该怎么办?
答案 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中使用了最新的软件包版本,但使用的是旧示例。)