我正在使用akka.http.scaladsl.model.HttpResponse,HttpEntity。从HttpEntity获取JSON
得到响应后,它的格式为responseEntity(Content-type:'application/json',{MyJSONHERE})。有没有一种方法可以从实体中提取我的json?
我试过entity.getDataBytes,它以ByteString格式给出了实体的内容。我想正确阅读JSON并解析它。有人可以指导我吗?
我正在使用akka.http.scaladsl.model.HttpResponse,HttpEntity。从HttpEntity获取JSON
得到响应后,它的格式为responseEntity(Content-type:'application/json',{MyJSONHERE})。有没有一种方法可以从实体中提取我的json?
我试过entity.getDataBytes,它以ByteString格式给出了实体的内容。我想正确阅读JSON并解析它。有人可以指导我吗?
代码为我工作
entity.dataBytes.runWith(Sink.fold(ByteString.empty)(_ ++ _)).map(_.utf8String) map { result =>
JsonMethods.parse(result)
}
dataBytes
回报Source[ByteString, Any]
,Sink.fold
结合流的所有部分纳入一个ByteString
和utf8String
转换成ByteString
通常String
。
以下是关于HttpEntity的一些有用的文档。
你可以试试下面的代码吗?
entity.getDataBytes.utf8String
这将返回JSON的字符串表示形式。下面
utfString是没有得到公认的有效功能 –
用于访问'utf8String','entity.getDataBytes'必须返回字节字符串和字节字符串类有UTF8字符串函数。 –
你正在使用'utfString'而不是'utf8String' –
相关 - https://stackoverflow.com/q/32315789/864369 –