Mappings
uk.gov.hmrc.play.json.Mappings
object Mappings
Usage examples:
Constructor that never fails:
case class Foo(value: String)
object Foo extends (String => Foo) {
private val mapping = Mappings.map[String, Foo](Foo, _.value)
implicit val jsonFormat = mapping.jsonReads
implicit val pathBindable = mapping.pathBindable
implicit val queryStringBindable = mapping.queryStringBindable
}
Constructor that may fail:
case class Bar(value: String) {
require(value.nonEmpty)
}
object Bar {
private val mapping = Mappings.mapTry[String, Foo](s => Try(Foo(s)), _.value)
implicit val jsonFormat = mapping.jsonReads
implicit val pathBindable = mapping.pathBindable
implicit val queryStringBindable = mapping.queryStringBindable
}
Enumeration:
sealed trait Base
case object Thing1 extends Base
case object Thing2 extends Base
object Base {
private val mapping = Mappings.mapEnum(Thing1, Thing2)
def fromString(name: String): Option[Base] = mapping.fromString(name)
implicit val jsonFormat = mapping.jsonReads
implicit val pathBindable = mapping.pathBindable
implicit val queryStringBindable = mapping.queryStringBindable
}
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Mappings.type
Members list
In this article