scalapb-playjson [](https://travis-ci.org/whisklabs/scalapb-playjson)
January 25, 2017 ยท View on GitHub
The structure of this project is hugely inspired by scalapb-json4s
Dependency
Artifacts are available for Scala 2.11 and 2.12
Include in your build.sbt file
libraryDependencies += "com.whisk" %% "scalapb-playjson" % "0.2.1"
Usage
There are four functions you can use directly to serialize/deserialize your messages:
JsonFormat.toJsonString(msg) // returns String
JsonFormat.toJson(msg): // returns JsObject
JsonFormat.fromJsonString(str) // return MessageType
JsonFormat.fromJson(json) // return MessageType
Alternatively you can define play-json Reads[T], Writes[T] or Format[T] and use serialization implicitly
import play.api.libs.json._
implicit val myMsgWrites: Writes[MyMsg] = JsonFormat.writes[MyMsg]
implicit val myMsgReads: Reads[MyMsg] = JsonFormat.reads[MyMsg]
implicit val myMsgFmt: Format[MyMsg] = JsonFormat.format[MyMsg]
There are helper methods for enums as well if necessary
JsonFormat.enumReads
JsonFormat.enumWrites
JsonFormat.enumFormat