groovy.json

## Class DefaultJsonGenerator

- java.lang.Object
- - groovy.json.DefaultJsonGenerator

- All Implemented Interfaces:
    JsonGenerator

      public class DefaultJsonGenerator
      extends java.lang.Object
      implements JsonGenerator

  A JsonGenerator that can be configured with various `JsonGenerator.Options`. If the default options are sufficient consider using the static `JsonOutput.toJson` methods.
  Since:
    2.5.0
  See Also:
    `JsonGenerator.Options.build()`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `DefaultJsonGenerator.ClosureConverter` A converter that handles converting a given type using a closure.

    - ### Nested classes/interfaces inherited from interface groovy.json.JsonGenerator

      `JsonGenerator.Converter, JsonGenerator.Options`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.Set<JsonGenerator.Converter>` | `converters`
    `protected java.lang.String` | `dateFormat`
    `protected java.util.Locale` | `dateLocale`
    `protected boolean` | `disableUnicodeEscaping`
    `protected java.util.Set<java.lang.String>` | `excludedFieldNames`
    `protected java.util.Set<java.lang.Class<?>>` | `excludedFieldTypes`
    `protected boolean` | `excludeNulls`
    `protected java.util.TimeZone` | `timezone`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `DefaultJsonGenerator(JsonGenerator.Options options)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonGenerator.Converter` | `findConverter(java.lang.Class<?> type)` Finds a converter that can handle the given type.
    `protected java.util.Map<?,?>` | `getObjectProperties(java.lang.Object object)`
    `boolean` | `isExcludingFieldsNamed(java.lang.String name)` Indicates whether this JsonGenerator is configured to exclude fields by the given name.
    `boolean` | `isExcludingValues(java.lang.Object value)` Indicates whether this JsonGenerator is configured to exclude values of the given object (may be `null`).
    `protected boolean` | `shouldExcludeType(java.lang.Class<?> type)` Indicates whether the given type should be excluded from the generated output.
    `java.lang.String` | `toJson(java.lang.Object object)` Converts an object to its JSON representation.
    `protected void` | `writeArray(java.lang.Class<?> arrayClass, java.lang.Object array, CharBuf buffer)` Serializes array and writes it into specified buffer.
    `protected void` | `writeCharSequence(java.lang.CharSequence seq, CharBuf buffer)` Serializes any char sequence and writes it into specified buffer.
    `protected void` | `writeDate(java.util.Date date, CharBuf buffer)` Serializes date and writes it into specified buffer.
    `protected void` | `writeIterator(java.util.Iterator<?> iterator, CharBuf buffer)` Serializes iterator and writes it into specified buffer.
    `protected void` | `writeMap(java.util.Map<?,?> map, CharBuf buffer)` Serializes map and writes it into specified buffer.
    `protected void` | `writeMapEntry(java.lang.String key, java.lang.Object value, CharBuf buffer)` Serializes a map entry and writes it into specified buffer.
    `protected void` | `writeNumber(java.lang.Class<?> numberClass, java.lang.Number value, CharBuf buffer)` Serializes Number value and writes it into specified buffer.
    `protected void` | `writeObject(java.lang.Object object, CharBuf buffer)`
    `protected void` | `writeObject(java.lang.String key, java.lang.Object object, CharBuf buffer)` Serializes object and writes it into specified buffer.
    `protected void` | `writeRaw(java.lang.CharSequence seq, CharBuf buffer)` Serializes any char sequence and writes it into specified buffer without performing any manipulation of the given text.

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

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

- - ### Field Detail

    - #### excludeNulls

          protected final boolean excludeNulls

    - #### disableUnicodeEscaping

          protected final boolean disableUnicodeEscaping

    - #### dateFormat

          protected final java.lang.String dateFormat

    - #### dateLocale

          protected final java.util.Locale dateLocale

    - #### timezone

          protected final java.util.TimeZone timezone

    - #### converters

          protected final java.util.Set<JsonGenerator.Converter> converters

    - #### excludedFieldNames

          protected final java.util.Set<java.lang.String> excludedFieldNames

    - #### excludedFieldTypes

          protected final java.util.Set<java.lang.Class<?>> excludedFieldTypes

  - ### Constructor Detail

    - #### DefaultJsonGenerator

          protected DefaultJsonGenerator(JsonGenerator.Options options)

  - ### Method Detail

    - #### toJson

          public java.lang.String toJson(java.lang.Object object)

      Converts an object to its JSON representation.
      Specified by:
        `toJson` in interface `JsonGenerator`
      Parameters:
        `object` - to convert to JSON
      Returns:
        JSON

    - #### isExcludingFieldsNamed

          public boolean isExcludingFieldsNamed(java.lang.String name)

      Indicates whether this JsonGenerator is configured to exclude fields by the given name.
      Specified by:
        `isExcludingFieldsNamed` in interface `JsonGenerator`
      Parameters:
        `name` - of the field
      Returns:
        true if that field is being excluded, else false

    - #### isExcludingValues

          public boolean isExcludingValues(java.lang.Object value)

      Indicates whether this JsonGenerator is configured to exclude values of the given object (may be `null`).
      Specified by:
        `isExcludingValues` in interface `JsonGenerator`
      Parameters:
        `value` - an instance of an object
      Returns:
        true if values like this are being excluded, else false

    - #### writeNumber

          protected void writeNumber(java.lang.Class<?> numberClass,
                                     java.lang.Number value,
                                     CharBuf buffer)

      Serializes Number value and writes it into specified buffer.

    - #### writeObject

          protected void writeObject(java.lang.Object object,
                                     CharBuf buffer)

    - #### writeObject

          protected void writeObject(java.lang.String key,
                                     java.lang.Object object,
                                     CharBuf buffer)

      Serializes object and writes it into specified buffer.

    - #### getObjectProperties

          protected java.util.Map<?,?> getObjectProperties(java.lang.Object object)

    - #### writeCharSequence

          protected void writeCharSequence(java.lang.CharSequence seq,
                                           CharBuf buffer)

      Serializes any char sequence and writes it into specified buffer.

    - #### writeRaw

          protected void writeRaw(java.lang.CharSequence seq,
                                  CharBuf buffer)

      Serializes any char sequence and writes it into specified buffer without performing any manipulation of the given text.

    - #### writeDate

          protected void writeDate(java.util.Date date,
                                   CharBuf buffer)

      Serializes date and writes it into specified buffer.

    - #### writeArray

          protected void writeArray(java.lang.Class<?> arrayClass,
                                    java.lang.Object array,
                                    CharBuf buffer)

      Serializes array and writes it into specified buffer.

    - #### writeMap

          protected void writeMap(java.util.Map<?,?> map,
                                  CharBuf buffer)

      Serializes map and writes it into specified buffer.

    - #### writeMapEntry

          protected void writeMapEntry(java.lang.String key,
                                       java.lang.Object value,
                                       CharBuf buffer)

      Serializes a map entry and writes it into specified buffer.

    - #### writeIterator

          protected void writeIterator(java.util.Iterator<?> iterator,
                                       CharBuf buffer)

      Serializes iterator and writes it into specified buffer.

    - #### findConverter

          protected JsonGenerator.Converter findConverter(java.lang.Class<?> type)

      Finds a converter that can handle the given type. The first converter that reports it can handle the type is returned, based on the order in which the converters were specified. A `null` value will be returned if no suitable converter can be found for the given type.
      Parameters:
        `type` - that this converter can handle
      Returns:
        first converter that can handle the given type; else `null` if no compatible converters are found for the given type.

    - #### shouldExcludeType

          protected boolean shouldExcludeType(java.lang.Class<?> type)

      Indicates whether the given type should be excluded from the generated output.
      Parameters:
        `type` - the type to check
      Returns:
        `true` if the given type should not be output, else `false`