Circe and Scala's Enumeration type

前端 未结 2 2037
无人共我
无人共我 2021-02-14 08:49

I\'m trying to wrap my head around Circe.

So, here\'s the model I\'ve been given:

object Gender extends Enumeration {
     type Gender = Value
     val M         


        
2条回答
  •  既然无缘
    2021-02-14 09:48

    Have a look at enumeratum if you want to use enumerations with circe. You could then try something like this:

    import enumeratum._
    
    sealed trait Gender extends EnumEntry
    
    case object Gender extends CirceEnum[Gender] with Enum[Gender] {
    
      case object Male extends Gender
      case object Female extends Gender
      case object Unisex extends Gender
      case object Unknown extends Gender
    
      val values = findValues
    }
    
    Gender.values.foreach { gender =>
        assert(gender.asJson == Json.fromString(gender.entryName))
    }
    

    This should work with circe's automatic derivation for use with your case classes.

提交回复
热议问题