小编Ale*_*lex的帖子

标志忽略属性 build_runner 的序列化

有没有办法忽略 JsonSerializable 类中属性的序列化?

我正在使用 build_runner 生成映射代码。

实现此目的的一种方法是在 .g.dart 文件中注释该特定属性的映射,尽管如果可以在属性上添加 ignore 属性会很棒。

import 'package:json_annotation/json_annotation.dart';

part 'example.g.dart';

@JsonSerializable()
class Example {
  Example({this.a, this.b, this.c,});

  int a;
  int b;

  /// Ignore this property
  int c;

  factory Example.fromJson(Map<String, dynamic> json) =>
      _$ExampleFromJson(json);

  Map<String, dynamic> toJson() => _$ExampleToJson(this);
}
Run Code Online (Sandbox Code Playgroud)

这导致

Example _$ExampleFromJson(Map<String, dynamic> json) {
  return Example(a: json['a'] as int, b: json['b'] as int, c: json['c'] as int);
}

Map<String, dynamic> _$ExampleToJson(Example instance) =>
    <String, dynamic>{'a': instance.a, 'b': instance.b, 'c': instance.c};
Run Code Online (Sandbox Code Playgroud)

我所做的就是通过注释 c 的映射来实现这一点。

Example …
Run Code Online (Sandbox Code Playgroud)

dart flutter json-serialization

14
推荐指数
3
解决办法
4559
查看次数

标签 统计

dart ×1

flutter ×1

json-serialization ×1