그래서 최근에 스칼라를 배우기 시작했습니다. 내 무능력에 미리 죄송합니다.Play2.2.1 프레임 워크에서 Json 스칼라 객체 직렬화
나는 stackoverflow에서 내 대답을 찾으려고했습니다. 몇 가지 관련 주제를 찾을 수 있었지만 문제는 발견하지 못했습니다.
Scala 개체를 기반으로 json 응답을 보내려고합니다. 나는 작업을하고 난하고있어 다음
def oneCredential = Action {
val cred = Credential("John", "Temp", "5437437")
Ok(Json.toJson(cred))
}
나는 이것을 실행하기 위해 노력하고있어 그
import play.api.libs.json._
import play.api.libs.functional.syntax._
import play.api.libs.json.util._
case class Credential(name: String, account: String, password: String)
object Credential{
implicit val credentialWrites = (
(__ \ "name").write[String] and
(__ \ "account").write[String] and
(__ \ "password").write[String]
)(Credential)
}
의 경우 클래스와 적절한 암시 글을 T]를 만들었습니다 , 다음과 같은 오류가 발생했습니다 : "오버로드 된 메서드 값 [적용]을 (models.Credential.type)에 적용 할 수 없습니다". 또한 시도했습니다.
implicit val credentialWrites = (
(__ \ "name").write[String] and
(__ \ "account").write[String] and
(__ \ "password").write[String]
)(Credential.apply _)
실패합니다. 오류가 : 매개 변수 라이닝을위한 암시 적 가치를 찾을 수 없습니다 : play.api.libs.functional.Functor는 [play.api.libs.json.OWrites]
는이 :
implicit val credentialWrites = (
(__ \ "name").writes[String] and
(__ \ "account").writes[String] and
(__ \ "password").writes[String]
)(Credential)
또 다른 실패 " 값 쓰기는 play.api.libs.json.JsPath의 구성원이 아닙니다. 주 : 암시 적 값인 credentialWrites는 응용 프로그램 포인트 이후에 있으며 명시적인 결과 유형이 없기 때문에 여기에 적용 할 수 없습니다. " 맞습니다. 오류의 첫 부분은 이해했지만 두 번째 부분은 이해하지 못했습니다. 나는 오류가있어 및 코드가 마침내 일이와
implicit val credentialWrites = Json.writes[Credential]
:
마지막으로 나는 속기 솔루션을 발견했다. 이 해결책은이 blog에 있습니다. 속기 양식은 위의 "쓰기"가있는 것과 정확히 동일하다고합니다. 그러나이 "긴"형태는 나를 위해 작동하지 않았습니다.긴 형식이 아닌 이유는 속기 버전이 작동하는 이유는 무엇입니까? 누군가가 이것을 설명 할 수 있습니까?
감사합니다.
PS 스칼라 버전 : 2.10.2는
대단히 감사합니다. – Semuserable