我有以下暗示:
object MyJsonProtocol extends DefaultJsonProtocol {
implicit val impStartObjSys = jsonFormat3(StartObj.Sys)
implicit val impStartObjData = jsonFormat6(StartObj.Data)
implicit val impStartObjStart = jsonFormat3(StartObj.Start)
}
它适用于 Spray 路由器,我通常可以将对象解组为 StartObj.Start(它将字符串和 sys 和数据作为输入参数)
现在我正在尝试编写负载测试并使用喷雾客户端执行 JSON 请求。不幸的是,它不想接受我的对象作为输入参数,错误:
[错误] Load.scala:85: 找不到类型>spray.httpx.marshalling.Marshaller[models.StartObj.Start] [错误] pipeline(Post(serverHost, newUser)) [错误] ^
我开始创建一个可以解决此问题的编组器:
implicit val StartObjMarshaller =
Marshaller.of[Start](ContentTypes.`application/json`)
{ (value, contentType, ctx) ⇒
ctx.marshalTo(HttpEntity(contentType, value))
}
但是在这里它抱怨 value 不是受支持的类型。它只需要字节数组或字符串。我需要字符串但采用 Json 格式,我应该如何编写这个编组器才能正确解决问题?
谢谢!