Play 2.0 애플리케이션에서 내 모델을 Scala에서 Json으로 직렬화하려고합니다. 응용 프로그램을 실행할 때Play 스칼라로 객체 직렬화하기 api와 Json
package models
import play.api.libs.json._
case class Task(id: Long, label: String, date: String)
object Task {
...
implicit object TaskFormat extends Format[Task] {
def reads(json: JsValue): Task = Task(
(json \ "id").as[Long],
(json \ "label").as[String],
(json \ "date").as[String])
def writes(t: Task): JsValue = JsObject(Seq(
"id" -> JsNumber(t.id),
"label" -> JsString(t.label),
"date" -> JsString(t.date)))
}
}
가 Unfortunartly 나는 다음과 같은 오류가 발생합니다 : :
verriding method reads in trait Reads of type (json: play.api.libs.json.JsValue)play.api.libs.json.JsResult[models.Task]; method reads has incompatible type
나는 아직 해결책을 찾지 못한이 내 코드처럼 보이는 방법이다. api 문서 (http://www.playframework.org/documentation/api/2.0/scala/play/api/libs/json/package.html)는 내가 취한 접근법을 제안하는 것으로 보입니다.
누구든지 내 실수를 감지합니까?
많은 감사,
조엘
가 좋아 정말로 그것을 지금 보지 못한다. 그러나 그것은 나를 많이 도와주지 않는다. 나는 컴파일러가 알려주는 것을 얻지 만'JsResult [Task] '를 반환하는 방법을 모른다. 웹의 모든 문서에는 내가하는 코드와 동일한 코드가있는 것 같습니다 (예 : http://www.playframework.org/documentation/2.0.1/ScalaJsonGenerics, http://stackoverflow.com/questions/11979638/serializing- 객체 - 투 - json-with-play-api-libs-json). – jokr
@jomikr - 무슨 일이 일어나고 있는지 알기 때문에 내 대답을 편집했습니다. –
그 점을 지적 해 주셔서 감사합니다. 나는 그런 식으로 API를 변경했다고 상상하지 못했습니다. 출처를 보니 마침내 해결책을 찾았습니다 : def read (json : JsValue) = JsSuccess ( (json \ "id"). [Long], (json \ "label"). , (json \ "date"). [String]))'' – jokr