2016-09-12 6 views
2

케이스 클래스를 json으로 변환하려고하는데 spray.io json을 사용하고 있습니다. 아래의 코드 :중첩 케이스 클래스를 사용하고 json implic을 스프레이하는 방법

case class Value(amt: Int) 
case class Item(name: String, count: Value) 
object MyJsonProtocol extends DefaultJsonProtocol { 
    implicit val itemFormat = jsonFormat2(Item) 
} 
import MyJsonProtocol._ 
import spray.json._ 
val json = Item("mary", Value(2)).toJson 
println(json) 

준다 : 나뿐만 아니라 가치에 대한 JsonProtocol를 정의하지만, 같은 얻기 위해 노력했습니다

could not find implicit value for evidence parameter of type onextent.bluecase.examples.ex1.ExampleJson2.MyJsonProtocol.JF[Value] 

. 검색 stackoverflow 나는이 오류가 generics과 관련된 것을 볼 수 있습니다.

무엇이 누락 되었습니까? (implicits에 대한 지금 다시 읽는 중 ...)

답변

3

Value 클래스는 Item 클래스의 일부이므로 json 형식이 필요합니다. 따라서 개체는 다음과 같이 표시되어야합니다.

object MyJsonProtocol extends DefaultJsonProtocol { 
implicit val valueFormat = jsonFormat1(Value) 
implicit val itemFormat = jsonFormat2(Item) 
}