Предотвращение нулевых значений в методе toJson Flutter JsonSerializable

Чтобы гарантировать, что метод toJsonв пакете json_serializableFlutter не устанавливает значение, если оно равно нулю, вы можете использовать аннотацию JsonKeyс параметром includeIfNull, установленным в значение false. Этот параметр указывает процессу сериализации исключить поле из вывода JSON, если его значение равно нулю.

Вот пример использования JsonKeyс includeIfNull:

import 'package:json_annotation/json_annotation.dart';
part 'example.g.dart';
@JsonSerializable()
class Example {
  @JsonKey(includeIfNull: false)
  String? name;
  @JsonKey(includeIfNull: false)
  int? age;
  Example({this.name, this.age});
  factory Example.fromJson(Map<String, dynamic> json) =>
      _$ExampleFromJson(json);
  Map<String, dynamic> toJson() => _$ExampleToJson(this);
}

В этом примере поля nameи ageбудут включены в выходные данные JSON только в том случае, если они имеют ненулевые значения.

Чтобы сгенерировать необходимый код, вам необходимо запустить команду build runner, обычно flutter pub run build_runner build.