标记以忽略属性build_runner的序列化

时间:2019-03-15 09:45:46

标签: dart flutter json-serialization

是否可以忽略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);
}

产生的结果

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};

我要做的是通过注释c的映射。

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 */};

1 个答案:

答案 0 :(得分:0)