当我找到本指南时,我在序列化方面苦苦挣扎
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之外,其他一切都很好。它说:类只能混入其他类。我该怎么办?

最佳答案

该错误是因为_$UserSerializerMixin类不在内置的user.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。现在,更改类(class)变得更加简单。

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

10-08 14:55