freezedを使う時よくお世話になる以下のような@マークが付いているコードについて調べても詳細が分からず困っています。
- @Default(null)
- @JsonKey(name: "jsonkey")
例えば、以下@DateTimeConverterクラスは正常に動くのですが、
意味がよくわからないまま使っていてモヤモヤするので勉強したいと思っています。
お手数をお掛けしますがよろしくお願いいたします。
import 'package:freezed_annotation/freezed_annotation.dart'; @freezed abstract class TimeRange implements _$TimeRange { const TimeRange._(); const factory TimeRange({ // 開始時間 @DateTimeConverter() @JsonKey(name: "date1") @Default(null) DateTime? start, // 終了時間 @DateTimeConverter() @JsonKey(name: "date2") @Default(null) DateTime? end, }) = _TimeRange; factory TimeRange.fromJson(Map<String, dynamic> json) => _$TimeRangeFromJson(json); } class DateTimeConverter implements JsonConverter<DateTime?, String> { const DateTimeConverter(); @override DateTime? fromJson(String value) { return DateTime.tryParse(value); } @override String toJson(DateTime? value) => value == null ? "" : value.toString(); }
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/06/27 20:12