大家好:)我刚接触Scala和Play大约16个小时!框架(版本2.1)。我正在使用Anorm的Play!2.0教程,它使用了Jerkson。据我所知,在2.1中,你可以开箱即用,只要你有正确的JSON格式化器。
这是JSON服务:def listBars() = Action {
val bars = Bar.findAll()
Ok(Json.toJson(bars)).as("application/json")
}
这里是bar。scala:
case class Bar(id: Pk[Long], name: String)
object Bar {
implicit var anormLongPkFormat = new Format[Pk[Long]] {
def writes(key: Pk[Long]): JsValue = Json.toJson(key.toString)
def reads(jv: JsValue): JsResult[Pk[Long]] = JsSuccess( -?- )
}
implicit val barFormat = Json.format[Bar]
def findAll(): Seq[Bar] = {...}
}
我正在使用Json.format[Bar]
,但它告诉我他需要anorm.Pk[Long]
的另一个格式化器。我不需要reads
方法,目前,我只想服务于值;但是编译器需要reads
方法。我完全不知道如何让它编译,更不用说如何写一个好的reads
了。
如果你现在不需要reads
,那么最简单的方法是不实现它的逻辑并返回一个错误:
def reads(jv: JsValue): JsResult[Pk[Long]] = JsError()