У меня есть следующие имплициты:
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] [ошибка] pipe(Post(serverHost, newUser)) [ошибка] ^
Я начал создавать маршаллер, который решил бы эту проблему:
implicit val StartObjMarshaller =
Marshaller.of[Start](ContentTypes.`application/json`)
{ (value, contentType, ctx) ⇒
ctx.marshalTo(HttpEntity(contentType, value))
}
Но здесь он жалуется на то, что значение не имеет поддерживаемого типа. Ожидается только массив байтов или строка. Мне нужна строка, но в формате Json, как мне написать этот маршаллер, чтобы он правильно решил проблему?
Спасибо!