Create Reads/Writes for Java Enum without Field

enums, json, playframework, scala

Solution

I simply made use of Enum#name.

  implicit val EnumNoFieldsReads: Reads[EnumNoFields] =
    (JsPath \ "displayValue").read[String].map{x: String => EnumNoFields.valueOf(x)}

  implicit val EnumNoFieldsWrites: Writes[EnumNoFields] =
    (JsPath \ "displayValue").write[String].contramap{x:EnumNoFields => x.name}

Problem

With the Play Framework's JSON library, how can I create a `Reads` and `Writes` for a Java enum without fields? `public enum EnumNoFields { RED, WHITE, BLUE }` ``` implicit val EnumNoFieldsReads: Reads[EnumNoFields] = ? implicit val EnumNoFieldsWrites: Writes[EnumNoFields] = ? ```

Original source

Related problems