public class JsonFraming$
extends java.lang.Object
ByteString
objects.Modifier and Type | Field and Description |
---|---|
static JsonFraming$ |
MODULE$
Static reference to the singleton instance of this Scala object.
|
Constructor and Description |
---|
JsonFraming$() |
Modifier and Type | Method and Description |
---|---|
Flow<ByteString,ByteString,NotUsed> |
objectScanner(int maximumObjectLength)
Returns a Flow that implements a "brace counting" based framing stage for emitting valid JSON chunks.
|
public static final JsonFraming$ MODULE$
public Flow<ByteString,ByteString,NotUsed> objectScanner(int maximumObjectLength)
Typical examples of data that one may want to frame using this stage 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.