org.codehaus.jackson.io
Class JsonStringEncoder

java.lang.Object
  extended by 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
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 SoftRerefence to a BufferRecycler used to provide a low-cost buffer recycling between reader and writer instances.
 
Constructor Summary
JsonStringEncoder()
           
 
Method Summary
 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 SoftRerefence 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.