play2를 사용하여 스칼라에서 Json을 읽으려고 할 때 정보가 객체를 만드는 데 사용되면 막혔습니다. 이 내 코드는 바로 지금입니다 :Json은 scala/play로 구문 분석 : 특성을 얻는 방법?
trait MyTrait {
}
object object1 extends MyTrait {
override def toString: String = "object1"
}
object object2 extends MyTrait{
override def toString: String = "object2"
}
def strToObject(str: String): MyTrait = str match {
case "object1" => object1
case "object2" => object2
}
이 내가 JSON 작성하는 방법입니다 :
implicit val traitWrites = new Writes[MyTrait] {
def writes(t: MyTrait) = Json.obj(
"t" -> t.toString)
}
출력
println("object1: " + Json.toJson(object1).toString)
println("object2: " + Json.toJson(object1).toString)
object1: {"t":"object1"}
object2: {"t":"object1"}
이 내가 읽으려고 방법이지만 않습니다 작동하지.
implicit val traitReads: Reads[MyTrait] = (
(JsPath \ " t").read[String])map(str => strToObject(str)) (MyTrait.apply _)
val jsonObject = Json.parse(Json.toJson(object1).toString)
val aux = jsonObject \ "t"
val myobject = aux.as[MyTrait]
그것은 뿌려 제 (MyTrait.apply _)와 함께 [MyTrait]으로 찾을 수 없습니다 ": MyTrait 값을". 그러나 표준 수업에서하는 것과 똑같은 것이므로 진행 방법을 모르겠습니다.
아이디어가 있으십니까? Play (와 스칼라도 마찬가지입니다.)와 함께 꽤 초보자입니다. 아마도 아주 기본적인 잘못을 저지르고있을 것입니다. 특히, 나는 "지도"호출을 매우 의심합니다. 특색은이 방법을 적용하지 않아도
밀봉 특성이 자동으로 최신 버전에서 지원하는 매력으로 – cchantep