Ok(json)
은 실제로는 Status.apply
입니다. A
을 바이트 배열로 변환하고 A
의 콘텐츠 형식을 반환 할 수있는 콘텐츠 인 play.api.http.Writeable[A]
이 필요합니다. 귀하의 경우 A
은 JsValue
을 나타냅니다.
def listPlaces(implicit writeable: Writeable[Place]) = Action {
Ok(Place.list)
}
난 당신이 이미 가정합니다 Writes[Place]
을 가지고 : 당신이 뭔가를 쓸 수 있도록
은 당신이 할 수있는 것은, 한 단계 더 가서 Writeable[Place]
을 공급하는 것입니다. 모든 것은 Writeable
를 http로 JSON Writes
변환하는 일반적인 기능을 구현하는 것입니다 남아 :
implicit def jsonWritesToHttpWriteable[A](jsWrites: Writes[A])
(implicit writeable: Writeable[JsValue]): Writeable[A] =
writeable.map(jsWrites.writes)
지금과 같은 암시이 변환 기능을 정의하는 데, 당신은 listPlaces
호출 할 때 그냥 Writes[Place]
를 제공 할 수 있습니다 :
val listPlacesJson = listPlaces(placeJsonWrites)
을
물론 경로는 listPlacesJson
이어야합니다.