如何以与我创建案例类相同的简单方式为案例类创建 OFormat[T]Json.Format[T]
?
这是我发现的(非常)简单的解决方案:
创建一个辅助对象:
import play.api.libs.json.{Format, OFormat, JsObject, JsValue, JsResult}
object JsonUtil {
def oFormat[T](format:Format[T]) : OFormat[T] = {
val oFormat: OFormat[T] = new OFormat[T](){
override def writes(o: T): JsObject = format.writes(o).as[JsObject]
override def reads(json: JsValue): JsResult[T] = format.reads(json)
}
oFormat
}
}
并像这样使用它:
import play.modules.reactivemongo.json._
implicit val formatFileToSave : Format[FileToSaveData] = Json.format[FileToSaveData]
implicit val oFormatFileToSave: OFormat[FileToSaveData] = JsonUtil.oFormat(formatFileToSave)
我希望明确传递“格式”,但是当我尝试使用以下命令运行时
def oFormat[T]()(implicit format:Format[T])
我有java.lang.RuntimeException
如果有人可以解释为什么或如何使用“隐式”而不用它RuntimeException
我很高兴听到。
我正在使用 Java 8 运行,玩 2.4.0 和 scala 2.11.7 (显然FileToSaveData
是我想要序列化的案例类)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)