또한 Json 형식의 형식에 대해 암시 적으로 정의 된 형식 변환기를 추가하는 데 문제가 있습니다. 나는 문제가 Json (또는 Spray)과 관련이 있는지 의심 스럽다. 또는 MyDate입니다. 예상대로컴패니언 개체, implicits 및 Json
case class MyDate(y: Int, m: Int, d: Int)
object JsonProblem extends App {
import spray.json.{DefaultJsonProtocol, _}
object MyJsonProtocol extends DefaultJsonProtocol with NullOptions {
implicit val myDateFormat = jsonFormat3(MyDate)
}
import MyJsonProtocol._
val exampleDate = """{ "y": 2016, "m": 7, "d": 11 }"""
val y: MyDate = exampleDate.parseJson.convertTo[MyDate]
}
지금까지, 모든 작품 :
는 여기에 문제 내가 겪고있어 리드 코드의 조각입니다. y 값은 MyDate의 적절한 인스턴스를 취합니다. (나는이 코드를 넣어 어디 중요한 생각하지 않지만)
이제 경우 클래스 정의 후, 나는 이렇게 동반자 개체를 소개 :
object MyDate {
implicit def convertMyDateToInt(x: MyDate): Int = ???
}
즉시, 나는에 컴파일러 오류 myDateFormat 줄 : * 참조 번호가 인 jsonFormat3과 같은 서명은 확인할 수 없습니다 *. 내 추가 코드의 목적은 (내 관점에서) Json 구문 분석과 관련이 없습니다. 이는 코드의 다른 부분에서 MyDate을 Int으로 암시 적으로 변환하려고하기 때문입니다.
필자는 컴파일러에서 생성 한 동반자 개체를 내 자신으로 대체 (또는 향상)한다는 사실과 관련이 있다고 기대합니다. 그러나 문제는 정확히 무엇이며 어떻게 해결할 수 있습니까?
감사를 적용 할 개체를, 그 생각해야! – Phasmid