2017-07-19 99 views
2

我正在使用akka.http.scaladsl.model.HttpResponse,HttpEntity。从HttpEntity获取JSON

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

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

+0

相关 - https://stackoverflow.com/q/32315789/864369 –

回答

1

代码为我工作

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

dataBytes回报Source[ByteString, Any]Sink.fold结合流的所有部分纳入一个ByteStringutf8String转换成ByteString通常String

以下是关于HttpEntity的一些有用的文档。

1

你可以试试下面的代码吗?

entity.getDataBytes.utf8String 

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

+0

utfString是没有得到公认的有效功能 –

+1

用于访问'utf8String','entity.getDataBytes'必须返回字节字符串和字节字符串类有UTF8字符串函数。 –

+0

你正在使用'utfString'而不是'utf8String' –