【问题标题】:Get the JSON from HttpEntity从 HttpEntity 获取 JSON
【发布时间】:2017-12-24 20:30:43
【问题描述】:

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

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

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

【问题讨论】:

标签: json scala akka httpresponse httpentity


【解决方案1】:

下面的代码对我有用

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

dataBytes 返回Source[ByteString, Any]Sink.fold 将流的所有部分合并为一个ByteStringutf8StringByteString 转换为通常的String

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

【讨论】:

    【解决方案2】:

    你能试试下面的代码吗?

    entity.getDataBytes.utf8String
    

    这将返回 JSON 的字符串表示形式。

    【讨论】:

    • utfString 未被识别为有效函数
    • 对于访问utf8Stringentity.getDataBytes必须返回ByteString,并且ByteString类有utf8String函数。
    • 你使用的是utfString而不是utf8String
    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    相关资源
    最近更新 更多