从 HttpEntity 获取 JSON

Get the JSON from HttpEntity

我正在使用 akka.http.scaladsl.model.HttpResponse、HttpEntity。

得到response后,是responseEntity类型的格式(Content-type: 'application/json', {MyJSONHERE})。有没有办法从实体中提取我的 json。

我试过 entity.getDataBytes 以 ByteString 格式给出实体的内容。我想正确阅读 JSON 并解析它。有人可以指导我吗?

你能试试下面的代码吗?

entity.getDataBytes.utf8String

那将 return JSON 的字符串表示。

下面的代码适合我

entity.dataBytes.runWith(Sink.fold(ByteString.empty)(_ ++ _)).map(_.utf8String) map { result =>
  JsonMethods.parse(result)
}

dataBytes returns Source[ByteString, Any], Sink.fold 将流的所有部分合并为一个 ByteStringutf8String 转换 ByteString 变成通常的 String.

这里有一些关于 HttpEntity 的有用文档。