无法找到隐式json格式的证据参数的隐含值

ZDe*_*p94 2 scala spray spray-json

我试图简单地为我的case类创建一个json格式:

case class ImageRequest (inputs: Array[ImageObject])

case class ImageObject(data: Data)

case class Data(image: Image)

case class Image(url: String)
Run Code Online (Sandbox Code Playgroud)

这是隐式格式:

object ApplicationProtocol extends DefaultJsonProtocol {

    lazy implicit val ImageRequestFormat = jsonFormat(ImageRequest, "inputs")
    lazy implicit val ImageObjectFormat = jsonFormat(ImageObject, "data")
    lazy implicit val DataFormat = jsonFormat(Data, "image")
    lazy implicit val ImageFormat = jsonFormat(Image, "url")
  }
Run Code Online (Sandbox Code Playgroud)

我收到错误:

> could not find implicit value for evidence parameter of type
> connectors.ClarifaiConnector.ApplicationProtocol.JF[Array[model.ImageObject]]
> [error]     lazy implicit val ImageRequestFormat =
> jsonFormat(ImageRequest, "inputs") [error]                            
> ^ [error]
> /Users/MacZ/Dropbox/Work/Development/JobOffer/ImageProject/src/main/scala/connectors/clarifaiConnector.scala:27:53:
> could not find implicit value for evidence parameter of type
> connectors.ClarifaiConnector.ApplicationProtocol.JF[model.Data]
> [error]     lazy implicit val ImageObjectFormat =
> jsonFormat(ImageObject, "data") [error]                               
> ^ [error]
> /Users/MacZ/Dropbox/Work/Development/JobOffer/ImageProject/src/main/scala/connectors/clarifaiConnector.scala:28:46:
> could not find implicit value for evidence parameter of type
> connectors.ClarifaiConnector.ApplicationProtocol.JF[model.Image]
> [error]     lazy implicit val DataFormat = jsonFormat(Data, "image")
> [error]                                              ^
Run Code Online (Sandbox Code Playgroud)

一切都已导入,似乎在范围内

Bar*_*wej 6

更改含义的顺序:

object ApplicationProtocol extends DefaultJsonProtocol {
    implicit val ImageFormat = jsonFormat(Image, "url")
    implicit val DataFormat = jsonFormat(Data, "image")
    implicit val ImageObjectFormat = jsonFormat(ImageObject, "data")
    implicit val ImageRequestFormat = jsonFormat(ImageRequest, "inputs")
}
Run Code Online (Sandbox Code Playgroud)

工作示例:https: //scastie.scala-lang.org/Bh6ugVwVSTyOun5PG3I1lQ