🐕

JsonConverterを共通化してみた

2022/12/14に公開

やりたかったこと

freezedを使ったentityの値をenumで管理したかった

👇共通化する前のconverterのコード

class HogeConverter implemrnts Json Converter<HogeType ,String>{
 const HogeCoverter();
 
 
 HogeType fromJson(String json){
  return ConvertHogeType.from(json); 
 }
 
 
 String toJson(HogeType object){
  return object == null ? '' : object.name
 }
 
 enum HogeType {
  SMALL,LARGE,BiG
 }
 
 extention ConvertHogeType on HogeType {
  String get rawValue => rawValue[this]!;
  
  static final rawValue = {
   HogeType.SMALL : '小さい'
   HogeType.LARGE : '大きい'
   HogeType.BIG : 'とても大きい'
  }
  Static HogeType? from(String rawValue) => rawValue.keys.firstWhereOrNull((element) => element.name == rawValue);
 }

👇共通化するために試行錯誤したこと

Discussion