이 컴파일되지 않습니다 :Playframeworks json 암시 적 쓰기에는 명시 적 유형이 필요하며 그 이유는 무엇입니까?
package model
import play.api.libs.json._
case class Dog(id: Long, name: String, kind: String) {
def asJson() = Json.toJson(this)
}
object Dog {
implicit val writes = Json.writes[Dog]
}
오류 :
53. Waiting for source changes... (press enter to interrupt)
[info] Compiling 1 Scala source to /Users/pablo/projects/mvp/target/scala-2.10/classes...
[error] /Users/pablo/projects/mvp/app/models/model2.scala:7: No Json deserializer found for type model.Dog. Try to implement an implicit Writes or Format for this type.
[error] def asJson() = Json.toJson(this)
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
는 동반자 개체 (명시 적 유형에주의를) 변경 :
object Dog {
implicit val writes: Writes[Dog] = Json.writes[Dog]
}
수정 문제. 왜 그런가요?
'Json.writes' 서명은'def write [A] : [A]'를 써서 타입이 정확히 명시 적이기에주의하십시오. –
필자는 스칼라에 대해서 충분히 알지 못하지만, [Writes [-A]'] (http://www.playframework.com/documentation/2.3.x/api/scala/index. html # play.api.libs.json.Writes)는 반 변형입니다. 이 경우 스칼라가 함축을 처리 할 수 있는지 여부는 알 수 없습니다. – Carsten