Playframework 如何将Play2.4JSON流示例转换为Play2.5

Playframework 如何将Play2.4JSON流示例转换为Play2.5,playframework,akka-stream,Playframework,Akka Stream,在剧本2.4中,我可以写: import play.api.libs.json._ import play.extras.iteratees._ val jsonStream: Enumerator[JsObject] = enumerator &> Encoding.decode() &> Enumeratee.grouped(JsonIteratees.jsSimpleObject) 从数组[字节]流转到JsObj

在剧本2.4中,我可以写:

import play.api.libs.json._
import play.extras.iteratees._
val jsonStream: Enumerator[JsObject] =
        enumerator &>
        Encoding.decode() &>
        Enumeratee.grouped(JsonIteratees.jsSimpleObject)
从数组[字节]流转到JsObject流。 但是现在在2.5中,我想做完全相同的事情,但是使用akka stream,但是找不到关于如何做上述代码的akka stream的任何信息


上面的代码如何知道在何处将流拆分为每个Json对象?

您似乎正在使用该库,顾名思义,该库是特定于迭代对象的。您可以在Play 2.5.6及更高版本(使用Akka Streams 2.4.9)上执行类似的操作,包括:

当前只解析来自数组的JSON对象流。如果您想要更完整的流解析支持,请查看

import akka.util.ByteString
import akka.http.scaladsl.common.EntityStreamingSupport
import akka.stream.scaladsl.Source

val byteSource = Source.single(ByteString.fromString("""[{"hello": "world"}]"""))

val jsonFraming = EntityStreamingSupport.json(Int.MAX_VALUE)

val jsonStream: Source[JsObject, akka.NotUsed] = byteSource
  .via(jsonFraming.framingDecoder)
  .map(bytes => Json.parse(bytes.toArray).as[JsObject])