我正在實施一些使用噴霧和akka的其他API API應該公開某種用戶CRUD。我只用在這個問題上創建用戶...如何無限制噴霧jsonFormat
case class User(id:String, name:String)
case class Register(user:User, registrationId:String)
trait DefaultJsonFormats extends DefaultJsonProtocol with SprayJsonSupport with MetaMarshallers {}
class RegistrationService(registration: ActorRef)
(implicit executionContext: ExecutionContext)
extends Directives with DefaultJsonFormats {
implicit val timeout = Timeout(2.seconds)
implicit val userFormat = jsonFormat3(User)
implicit val registerFormat = jsonFormat1(Register)
implicit val registeredFormat = jsonFormat1(Registered)
val route =
path("register") {
post { handleWith { ru: Register => (registration ? ru).mapTo[Registered] } }
}
現在讓我們假設用戶類有30場 但沒有jsonFormat30(...) 如何使用這種implicits任何情況下,類對象?
你可以使用https://github.com/fommil/spray-json-shapeless,它與case class> 30參數一起工作很好,雖然期望編譯時間稍長。 – knutwalker