在Dart中,如果你想在序列化JSON时排除某个字段,可以使用json_serializable
库和@JsonKey
注解。以下是如何实现这一点的步骤:
当你有一个Dart模型类,并且希望在序列化为JSON时排除某些字段时,可以使用@JsonKey
注解。
假设我们有一个Dart模型类User
,并且我们希望在序列化为JSON时排除password
字段:
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable()
class User {
final String name;
final int age;
@JsonKey(exclude: true)
final String password;
User({required this.name, required this.age, required this.password});
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
json_annotation
库。@JsonSerializable()
注解标记User
类。@JsonKey(exclude: true)
注解标记password
字段,这样在序列化为JSON时会排除该字段。json_serializable
库的生成器,生成user.g.dart
文件,其中包含序列化和反序列化的代码。在终端中运行以下命令生成代码:
flutter pub run build_runner build
通过这种方式,你可以轻松地在Dart模型类中排除特定字段,从而控制JSON序列化的输出。
领取专属 10元无门槛券
手把手带您无忧上云