class Jackson2Tokenizer extends java.lang.Object implements java.util.function.Function<DataBuffer,<any>>
Function
to transform a JSON stream of arbitrary size, byte array
chunks into a Flux<TokenBuffer>
where each token buffer is a
well-formed JSON object.Modifier and Type | Field and Description |
---|---|
private int |
arrayDepth |
private ByteArrayFeeder |
inputFeeder |
private int |
objectDepth |
private JsonParser |
parser |
private TokenBuffer |
tokenBuffer |
private boolean |
tokenizeArrayElements |
Constructor and Description |
---|
Jackson2Tokenizer(JsonParser parser,
boolean tokenizeArrayElements)
Create a new instance of the
Jackson2Tokenizer . |
Modifier and Type | Method and Description |
---|---|
<any> |
apply(DataBuffer dataBuffer) |
void |
endOfInput() |
private boolean |
isTopLevelArrayToken(JsonToken token) |
private void |
processTokenArray(JsonToken token,
java.util.List<TokenBuffer> result) |
private void |
processTokenNormal(JsonToken token,
java.util.List<TokenBuffer> result) |
private void |
updateDepth(JsonToken token) |
private final JsonParser parser
private final boolean tokenizeArrayElements
private TokenBuffer tokenBuffer
private int objectDepth
private int arrayDepth
private final ByteArrayFeeder inputFeeder
public Jackson2Tokenizer(JsonParser parser, boolean tokenizeArrayElements)
Jackson2Tokenizer
.parser
- the non-blocking parser, obtained via
com.fasterxml.jackson.core.JsonFactory#createNonBlockingByteArrayParser
tokenizeArrayElements
- if true
and the "top level" JSON
object is an array, each element is returned individually, immediately
after it is received.public <any> apply(DataBuffer dataBuffer)
apply
in interface java.util.function.Function<DataBuffer,<any>>
private void updateDepth(JsonToken token)
private void processTokenNormal(JsonToken token, java.util.List<TokenBuffer> result) throws java.io.IOException
java.io.IOException
private void processTokenArray(JsonToken token, java.util.List<TokenBuffer> result) throws java.io.IOException
java.io.IOException
private boolean isTopLevelArrayToken(JsonToken token)
public void endOfInput()