o

akka.stream.javadsl

JsonFraming

object JsonFraming

Provides JSON framing operators that can separate valid JSON objects from incoming akka.util.ByteString objects.

Source
JsonFraming.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JsonFraming
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. def objectScanner(maximumObjectLength: Int): Flow[ByteString, ByteString, NotUsed]

    Returns a Flow that implements a "brace counting" based framing operator for emitting valid JSON chunks.

    Returns a Flow that implements a "brace counting" based framing operator for emitting valid JSON chunks.

    Typical examples of data that one may want to frame using this operator include:

    **Very large arrays**:

    [{"id": 1}, {"id": 2}, [...], {"id": 999}]

    **Multiple concatenated JSON objects** (with, or without commas between them):

    {"id": 1}, {"id": 2}, [...], {"id": 999}

    The framing works independently of formatting, i.e. it will still emit valid JSON elements even if two elements are separated by multiple newlines or other whitespace characters. And of course is insensitive (and does not impact the emitting frame) to the JSON object's internal formatting.

    maximumObjectLength

    The maximum length of allowed frames while decoding. If the maximum length is exceeded this Flow will fail the stream.