final class Jackson2Tokenizer
extends java.lang.Object
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 DeserializationContext |
deserializationContext |
private ByteArrayFeeder |
inputFeeder |
private int |
objectDepth |
private JsonParser |
parser |
private TokenBuffer |
tokenBuffer |
private boolean |
tokenizeArrayElements |
Modifier | Constructor and Description |
---|---|
private |
Jackson2Tokenizer(JsonParser parser,
DeserializationContext deserializationContext,
boolean tokenizeArrayElements) |
Modifier and Type | Method and Description |
---|---|
private <any> |
endOfInput() |
private boolean |
isTopLevelArrayToken(JsonToken token) |
private java.util.List<TokenBuffer> |
parseTokenBufferFlux() |
private void |
processTokenArray(JsonToken token,
java.util.List<TokenBuffer> result) |
private void |
processTokenNormal(JsonToken token,
java.util.List<TokenBuffer> result) |
static <any> |
tokenize(<any> dataBuffers,
JsonFactory jsonFactory,
ObjectMapper objectMapper,
boolean tokenizeArrayElements)
Tokenize the given
Flux<DataBuffer> into Flux<TokenBuffer> . |
private java.util.List<TokenBuffer> |
tokenize(DataBuffer dataBuffer) |
private void |
updateDepth(JsonToken token) |
private final JsonParser parser
private final DeserializationContext deserializationContext
private final boolean tokenizeArrayElements
private TokenBuffer tokenBuffer
private int objectDepth
private int arrayDepth
private final ByteArrayFeeder inputFeeder
private Jackson2Tokenizer(JsonParser parser, DeserializationContext deserializationContext, boolean tokenizeArrayElements)
private java.util.List<TokenBuffer> tokenize(DataBuffer dataBuffer)
private <any> endOfInput()
private java.util.List<TokenBuffer> parseTokenBufferFlux() throws java.io.IOException
java.io.IOException
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 static <any> tokenize(<any> dataBuffers, JsonFactory jsonFactory, ObjectMapper objectMapper, boolean tokenizeArrayElements)
Flux<DataBuffer>
into Flux<TokenBuffer>
.dataBuffers
- the source data buffersjsonFactory
- the factory to useobjectMapper
- the current mapper instancetokenizeArrayElements
- if true
and the "top level" JSON object is
an array, each element is returned individually immediately after it is received