Я получаю обратную связь Json от удаленного стороннего API следующим образом:
val myjson: Future[HttpResponse] = http.singleRequest(HttpRequest(uri = encodedUri))
myjson onComplete {
case Success(response) => sender ! WrappedResponse(response.entity.toJson)
case Failure...
}
класс case WrappedResponse (ответ: JsValue)
HttpResponse.entity
содержит мой канал json. Возможно ли упорядочивать и отменять этот канал Json или только его части?
Одна из проблем заключается в том, что когда я отправляю его обратно, завернув json в класс case, я получаю что-то:
Error:(38, 78) Cannot find JsonWriter or JsonFormat type class for akka.http.scaladsl.model.ResponseEntity
case Success(response) => sender ! WrappedResponse(response.entity.toJson)
Как я могу «упорядочить» сам Json?
ОБНОВЛЕНИЕ
Наконец-то я могу сначала разобрать данные следующим образом:
val responseData = sendHttpRequest(encodedUrl)
val bodyAsString = responseData.flatMap { response => Unmarshal(response.entity).to[String] }
bodyAsString onComplete {
case Success(body) => sender ! WrappedResponse(body)
case Failure(response) => response
}
и в моем маршаллере:
trait MyJsonMarshaller extends SprayJsonSupport with DefaultJsonProtocol {
implicit val titleDeedResponseFormat = jsonFormat1(WrappedResponse.apply)
}
но сортировка "повторно применить" не работает