typesafe の activator テンプレートから取得したもので、Json.format をケース クラスのコンパニオン オブジェクト (ReactiveMongo 0.9、scala 2.10.2) で暗黙の val として使用するだけです。例:
package models
import play.api.libs.json.Json
import reactivemongo.bson.BSONObjectID
import play.modules.reactivemongo.json.BSONFormats._
/**
* A message class
*
* @param _id The BSON object id of the message
* @param message The message
*/
case class Message(_id: BSONObjectID, message: String)
object Message {
/**
* Format for the message.
*
* Used both by JSON library and reactive mongo to serialise/deserialise a message.
*/
implicit val messageFormat = Json.format[Message]
}
私はそれを使用しています.JSONがそれらをフォーマットする方法を知っている限り、より多くのパラメーターを使用できます.
package models
import play.api.libs.json.Json
import reactivemongo.bson.BSONObjectID
import play.modules.reactivemongo.json.BSONFormats._
/**
* A message class
*
* @param _id The BSON object id of the message
* @param message The message
*/
case class Name(fName: String, lName: String, mInitial: String)
object Name {
implicit val nameFormat = Json.format[Name]
}
case class Message(_id: BSONObjectID, message: String, name: Name)
object Message {
/**
* Format for the message.
*
* Used both by JSON library and reactive mongo to serialise/deserialise a message.
*/
implicit val messageFormat = Json.format[Message]
}
補助コンストラクターがある場合、またはコンパニオンに apply(...) を実装する場合、私はまだそれを行う方法を考え出していません。ただし、コンパイラはそのことを警告します。