直接从数据库中暴露对象JSON -编写格式[anorm.Pk[Long]]



大家好:)我刚接触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()

最新更新