2014-06-17 2 views
1

그와 관련된 포맷이 있는지 확인 extractConfig 메서드는 일부 계산을 수행하고 암시 적 json 형식 개체를 사용하여 서버가 자동으로 json으로 변환하는 Config.Valid 또는 Config.Invalid을 반환합니다. 내 문제는 extractConfig가 반환하기 때문에 컴파일러 오류가 있음을있는 Config :스칼라 부모 클래스가 나는 다음과 같은 간단한 유형 계층이

type mismatch; found : Config 
    required: spray.httpx.marshalling.ToResponseMarshallable 

나는 extractConfigConfig.Valid의 반환 형식을 변경하는 경우 jsonFormatFor(...)가 respose a를 만들기 위해 필요한 자동 타입 변환을 제공하기 때문에 다음 서버 코드는 컴파일 ToResponseMarshaller (필자는이 자동 변환을 완전히 이해하지 못했지만, 스칼라에 대해서는 약간 새로운 것을 알고 있습니다.) 암시 적 변환을 통해 제공되는 것으로 보이는 특성 인 ToResponseMarshaller이 주어진 경우 Config의 서브 클래스가 ToResponseMarshaller이어야한다고 선언함으로써이를 해결할 수있는 간단한 방법이 있습니까?

+0

사용중인 JSON 라이브러리를 말해야합니다. 예를 들어 LiftJSON을 사용하면 데 씨리얼 라이즈/언 마샬링 할 추상 유형에 대한 힌트를 제공 할 수 있습니다. 어떻게 작동하는지 여기를 확인하십시오 ... http://stackoverflow.com/questions/7525875/polymorphic-lift-json-deserialization-in-a-composed-class –

+0

나는 spray/spray-json을 사용하고 있습니다. – jonderry

답변

2

Config.Valid 및 Config.Invalid 만있는 경우 extractConfig가 [Config.Valid, Config.Invalid] 중 하나를 반환하는 것으로 충분해야합니다. 위의 형식이 작동해야합니다.

또 다른 가능성은 jsonwriter를 작성하는 것입니다 (메일 링리스트의 thread 참조).

관련 문제