首页 > 解决方案 > _$UserSerializerMixin 我需要吗?

问题描述

当我找到本指南 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);
}

我按照指南(也运行颤振包 pub run build_runner watch 命令),一切都很好,除了 _$UserSerializerMixin. 它说:类只能混入其他类。我应该怎么办?

标签: serializationdartflutter

解决方案


错误是因为_$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而是创建。对你的类的更改现在更简单了。

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


推荐阅读