喷雾编组自定义对象

Spray Marshalling Custom Objects

我试图在我的一个回复中将一些自定义对象编组到 JSON,但似乎无法获得正确的逻辑。我怀疑这是一个简单的问题,但我似乎无法在任何地方找到解决方案。

我有以下没问题的...

case class MyKeyResponse(success:Boolean, key:String, 
  key_id:Int, key_description:String)
object MyKeyJsonResponseProtocols extends DefaultJsonProtocol {
  implicit val responseFormat = jsonFormat4(AppKeyResponse)
}

然后我声明以下内容,用于包装从数据库查询返回的上述 MyKey 对象的集合...

case class MyKeysResponse(success:Boolean, appKeys:Seq[MyKey])
object MyKeysJsonResponseProtocols extends DefaultJsonProtocol {
  implicit val responseFormat = jsonFormat2(AppKeysResponse)
}

但是我得到以下错误...

not enough arguments for method jsonFormat2: 
(implicit evidence: …   MyKeysJsonResponseProtocols.JF[Boolean],     
implicit evidence: …MyKeysJsonResponseProtocols.JF[Seq[…   
MyKeys.AppKey]], implicit evidence: ClassManifest[…
MyKeysResponse])spray.json.RootJsonFormat[…MyKeysResponse]. Unspecified 
value parameters evidence, evidence.    MyKeysResponse.scala

和编组错误。

如有任何帮助,我们将不胜感激!

谢谢

我的问题其实很简单,吸取了教训! 我的每个编组器都使用相同的隐式变量名称...

object MyJsonResponseProtocol1 extends DefaultJsonProtocol {
  implicit val responseFormat = jsonFormat2(...)
}

object MyJsonResponseProtocol2 extends DefaultJsonProtocol {
  implicit val responseFormat = jsonFormat2(...)
}

等等……导入的时候明显是冲突的。所以我只是重命名了它们。