io.vertx.core.parsetools

## Interface JsonParser

- All Superinterfaces:
    Handler<Buffer>, ReadStream<JsonEvent>, StreamBase

      public interface JsonParser
      extends Handler<Buffer>, ReadStream<JsonEvent>

  A parser class which allows to incrementally parse json elements and emit json parse events instead of parsing a json element fully. This parser is convenient for parsing large json structures.

  The parser can also parse entire object or array when it is convenient, for instance a very large array of small objects can be parsed efficiently by handling array start/end and object events.

  Whenever the parser fails to parse or process the stream, the `exceptionHandler(Handler)` is called with the cause of the failure and the current handling stops. After such event, the parser should not handle data anymore.
  Author:
    Julien Viet

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `JsonParser` | `arrayEventMode()` Flip the parser to emit a stream of events for each new json array.
    `JsonParser` | `arrayValueMode()` Flip the parser to emit a single value event for each new json array.
    `void` | `end()` End the stream, this must be called after all the json stream has been processed.
    `JsonParser` | `endHandler(Handler<Void> endHandler)` Set an end handler.
    `JsonParser` | `exceptionHandler(Handler<Throwable> handler)` Set an exception handler on the read stream.
    `JsonParser` | `handler(Handler<JsonEvent> handler)` Set a data handler.
    `static JsonParser` | `newParser()` Create a new `JsonParser` instance.
    `static JsonParser` | `newParser(ReadStream<Buffer> stream)` Create a new `JsonParser` instance.
    `JsonParser` | `objectEventMode()` Flip the parser to emit a stream of events for each new json object.
    `JsonParser` | `objectValueMode()` Flip the parser to emit a single value event for each new json object.
    `JsonParser` | `pause()` Pause the `ReadSupport`.
    `JsonParser` | `resume()` Resume reading.
    `JsonParser` | `write(Buffer buffer)` Handle a `Buffer`, pretty much like calling `Handler.handle(Object)`.

    - ### Methods inherited from interface io.vertx.core.Handler

      `handle`

- - ### Method Detail

    - #### newParser

          static JsonParser newParser()

      Create a new `JsonParser` instance.

    - #### newParser

          static JsonParser newParser(ReadStream<Buffer> stream)

      Create a new `JsonParser` instance.

    - #### write

          JsonParser write(Buffer buffer)

      Handle a `Buffer`, pretty much like calling `Handler.handle(Object)`.
      Returns:
        a reference to this, so the API can be used fluently

    - #### end

          void end()

      End the stream, this must be called after all the json stream has been processed.

    - #### objectEventMode

          JsonParser objectEventMode()

      Flip the parser to emit a stream of events for each new json object.
      Returns:
        a reference to this, so the API can be used fluently

    - #### objectValueMode

          JsonParser objectValueMode()

      Flip the parser to emit a single value event for each new json object. Json object currently streamed won't be affected.
      Returns:
        a reference to this, so the API can be used fluently

    - #### arrayEventMode

          JsonParser arrayEventMode()

      Flip the parser to emit a stream of events for each new json array.
      Returns:
        a reference to this, so the API can be used fluently

    - #### arrayValueMode

          JsonParser arrayValueMode()

      Flip the parser to emit a single value event for each new json array. Json array currently streamed won't be affected.
      Returns:
        a reference to this, so the API can be used fluently

    - #### pause

          JsonParser pause()

      Description copied from interface: `ReadStream`
      Pause the `ReadSupport`. While it's paused, no data will be sent to the `dataHandler`
      Specified by:
        `pause` in interface `ReadStream<JsonEvent>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### resume

          JsonParser resume()

      Description copied from interface: `ReadStream`
      Resume reading. If the `ReadSupport` has been paused, reading will recommence on it.
      Specified by:
        `resume` in interface `ReadStream<JsonEvent>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### endHandler

          JsonParser endHandler(Handler<Void> endHandler)

      Description copied from interface: `ReadStream`
      Set an end handler. Once the stream has ended, and there is no more data to be read, this handler will be called.
      Specified by:
        `endHandler` in interface `ReadStream<JsonEvent>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### handler

          JsonParser handler(Handler<JsonEvent> handler)

      Description copied from interface: `ReadStream`
      Set a data handler. As data is read, the handler will be called with the data.
      Specified by:
        `handler` in interface `ReadStream<JsonEvent>`
      Returns:
        a reference to this, so the API can be used fluently

    - #### exceptionHandler

          JsonParser exceptionHandler(Handler<Throwable> handler)

      Description copied from interface: `ReadStream`
      Set an exception handler on the read stream.
      Specified by:
        `exceptionHandler` in interface `ReadStream<JsonEvent>`
      Specified by:
        `exceptionHandler` in interface `StreamBase`
      Parameters:
        `handler` - the exception handler
      Returns:
        a reference to this, so the API can be used fluently

Copyright © 2017. All rights reserved.