类 Jackson2Tokenizer

java.lang.Object
cn.taketoday.http.codec.json.Jackson2Tokenizer

final class Jackson2Tokenizer extends 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.
从以下版本开始:
4.0
作者:
Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller
  • 字段详细资料

    • parser

      private final JsonParser parser
    • inputFeeder

      private final NonBlockingInputFeeder inputFeeder
    • deserializationContext

      private final DeserializationContext deserializationContext
    • maxInMemorySize

      private final int maxInMemorySize
    • forceUseOfBigDecimal

      private final boolean forceUseOfBigDecimal
    • tokenizeArrayElements

      private final boolean tokenizeArrayElements
    • byteCount

      private int byteCount
    • arrayDepth

      private int arrayDepth
    • objectDepth

      private int objectDepth
    • tokenBuffer

      private TokenBuffer tokenBuffer
  • 构造器详细资料

    • Jackson2Tokenizer

      private Jackson2Tokenizer(JsonParser parser, DeserializationContext deserializationContext, boolean tokenizeArrayElements, boolean forceUseOfBigDecimal, int maxInMemorySize)
  • 方法详细资料

    • tokenize

      private List<TokenBuffer> tokenize(cn.taketoday.core.io.buffer.DataBuffer dataBuffer)
    • endOfInput

      private reactor.core.publisher.Flux<TokenBuffer> endOfInput()
    • parseTokenBufferFlux

      private ArrayList<TokenBuffer> parseTokenBufferFlux() throws IOException
      抛出:
      IOException
    • updateDepth

      private void updateDepth(JsonToken token)
    • processTokenNormal

      private void processTokenNormal(JsonToken token, ArrayList<TokenBuffer> result) throws IOException
      抛出:
      IOException
    • processTokenArray

      private void processTokenArray(JsonToken token, ArrayList<TokenBuffer> result) throws IOException
      抛出:
      IOException
    • createToken

      private TokenBuffer createToken()
    • isTopLevelArrayToken

      private boolean isTopLevelArrayToken(JsonToken token)
    • assertInMemorySize

      private void assertInMemorySize(int currentBufferSize, List<TokenBuffer> result)
    • raiseLimitException

      private void raiseLimitException()
    • tokenize

      public static reactor.core.publisher.Flux<TokenBuffer> tokenize(reactor.core.publisher.Flux<cn.taketoday.core.io.buffer.DataBuffer> dataBuffers, JsonFactory jsonFactory, ObjectMapper objectMapper, boolean tokenizeArrays, boolean forceUseOfBigDecimal, int maxInMemorySize)
      Tokenize the given Flux<DataBuffer> into Flux<TokenBuffer>.
      参数:
      dataBuffers - the source data buffers
      jsonFactory - the factory to use
      objectMapper - the current mapper instance
      tokenizeArrays - if true and the "top level" JSON object is an array, each element is returned individually immediately after it is received
      forceUseOfBigDecimal - if true, any floating point values encountered in source will use BigDecimal
      maxInMemorySize - maximum memory size
      返回:
      the resulting token buffers