[ACCEPTED]-Play Framework: How to serialize/deserialize an enumeration to/from JSON-playframework
Accepted answer
implicit val genderReads = Reads.enumNameReads(Gender)
is working fine for me. Play Scala 2.4.2
0
Try changing it to
def reads(json: JsValue) = JsSuccess(MyEnum.withName(json.as[String].value))
0
Expanding on @surenyonjan's response, the 1 following works nicely with Play Json 2.6:
object MyEnum extends Enumeration {
type MyEnum = Value
val e1, e2 = Value
implicit val myEnumReads = Reads.enumNameReads(MyEnum)
implicit val myEnumWrites = Writes.enumNameWrites
}
Play 2.7
Since play-json 2.7 there is Json.formatEnum
method. Added 1 in scope of #140
Example:
object MyEnum extends Enumeration {
type MyEnum = Value
val Val1 = Value("val1")
val Val2 = Value("val2")
val ValN = Value("valN")
implicit val format: Format[MyEnum] = Json.formatEnum(this)
}
I have put together more generic and re-usable 3 EnumerationReads, EnumerationWrites and 2 EnumerationFormat classes and have posted 1 them on my github page:
Source:
stackoverflow.com
More Related questions
Cookie Warning
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.