Ich bekomme einen Json-Feed zurück von einem entfernten Dritten API auf diese Weise:Akka: Wie mit zurück Json-Feed arbeiten?
val myjson: Future[HttpResponse] = http.singleRequest(HttpRequest(uri = encodedUri))
myjson onComplete {
case Success(response) => sender ! WrappedResponse(response.entity.toJson)
case Failure...
}
Fallklasse WrappedResponse (Antwort: JsValue)
Die HttpResponse.entity
enthält meinen Json-Feed. Ist es möglich, Marshall und Marshall dieses JSon oder nur Teile davon zu füttern?
Eines der Probleme ist, dass, wenn ich es wieder die json in einem Fall, Klasse eingewickelt senden ich etwas bekommen:
Error:(38, 78) Cannot find JsonWriter or JsonFormat type class for akka.http.scaladsl.model.ResponseEntity
case Success(response) => sender ! WrappedResponse(response.entity.toJson)
Wie kann ich „marshall“ Json selbst?
UPDATE
ich endlich erste auf diese Weise die Daten entordnen:
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
}
und in meinem Einweiser:
trait MyJsonMarshaller extends SprayJsonSupport with DefaultJsonProtocol {
implicit val titleDeedResponseFormat = jsonFormat1(WrappedResponse.apply)
}
aber die "re-apply" Rangier funktioniert nicht
Was meinst du mit "erneut anwenden" Marshalling? Tritt ein Compilerfehler auf? – acjay
Nein, ich habe es gelöst. Ich muss mich nicht erneut bewerben. – Randomize