JsonStringEncoder (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.io

## Class JsonStringEncoder

- java.lang.Object
- - org.codehaus.jackson.io.JsonStringEncoder

-     public final class JsonStringEncoder
      extends Object

  Helper class used for efficient encoding of JSON String values (including JSON field names) into Strings or UTF-8 byte arrays.

  Note that methods in here are somewhat optimized, but not ridiculously so. Reason is that conversion method results are expected to be cached so that these methods will not be hot spots during normal operation.

  Since:
    1.6

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ByteArrayBuilder` | `_byteBuilder` Lazily-constructed builder used for UTF-8 encoding of text values (quoted and unquoted)
    `protected char[]` | `_quoteBuffer` Temporary buffer used for composing quote/escape sequences
    `protected TextBuffer` | `_textBuffer` Lazily constructed text buffer used to produce JSON encoded Strings as characters (without UTF-8 encoding)
    `protected static ThreadLocal<SoftReference<JsonStringEncoder>>` | `_threadEncoder` This `ThreadLocal` contains a `SoftReference` to a `BufferRecycler` used to provide a low-cost buffer recycling between reader and writer instances.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JsonStringEncoder()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `encodeAsUTF8(String text)` Will encode given String as UTF-8 (without any quoting), return resulting byte array.
    `static JsonStringEncoder` | `getInstance()` Factory method for getting an instance; this is either recycled per-thread instance, or a newly constructed one.
    `char[]` | `quoteAsString(String input)` Method that will quote text contents using JSON standard quoting, and return results as a character array
    `byte[]` | `quoteAsUTF8(String text)` Will quote given JSON String value using standard quoting, encode results as UTF-8, and return result as a byte array.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### _threadEncoder

          protected static final ThreadLocal<SoftReference<JsonStringEncoder>> _threadEncoder

      This `ThreadLocal` contains a `SoftReference` to a `BufferRecycler` used to provide a low-cost buffer recycling between reader and writer instances.

    - #### _textBuffer

          protected TextBuffer _textBuffer

      Lazily constructed text buffer used to produce JSON encoded Strings as characters (without UTF-8 encoding)

    - #### _byteBuilder

          protected ByteArrayBuilder _byteBuilder

      Lazily-constructed builder used for UTF-8 encoding of text values (quoted and unquoted)

    - #### _quoteBuffer

          protected final char[] _quoteBuffer

      Temporary buffer used for composing quote/escape sequences

  - ### Constructor Detail

    - #### JsonStringEncoder

          public JsonStringEncoder()

  - ### Method Detail

    - #### getInstance

          public static JsonStringEncoder getInstance()

      Factory method for getting an instance; this is either recycled per-thread instance, or a newly constructed one.

    - #### quoteAsString

          public char[] quoteAsString(String input)

      Method that will quote text contents using JSON standard quoting, and return results as a character array

    - #### quoteAsUTF8

          public byte[] quoteAsUTF8(String text)

      Will quote given JSON String value using standard quoting, encode results as UTF-8, and return result as a byte array.

    - #### encodeAsUTF8

          public byte[] encodeAsUTF8(String text)

      Will encode given String as UTF-8 (without any quoting), return resulting byte array.