com.google.gson
Class GsonBuilder

java.lang.Object
  extended by com.google.gson.GsonBuilder

public final class GsonBuilder
extends java.lang.Object

Use this builder to construct a Gson instance when you need to set configuration options other than the default. For Gson with default configuration, it is simpler to use new Gson(). GsonBuilder is best used by creating it, and then invoking its various configuration methods, and finally calling create. Here is an example:

 Gson gson = new GsonBuilder();
     .setVersion(1.0)
     .setPrettyPrinting()
     .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
     .registerTypeAdapter(Id.class, new IdTypeAdapter())
     .create();
 

Author:
Inderjeet Singh, Joel Leitch

Constructor Summary
GsonBuilder()
          Creates a GsonBuilder instance that can be used to build Gson with various configuration settings.
 
Method Summary
 Gson create()
          Creates a Gson instance based on the current configuration.
 GsonBuilder excludeFieldsWithModifiers(int... modifiers)
          Configures Gson to excludes all class fields that have the specified modifiers.
 GsonBuilder excludeFieldsWithoutExposeAnnotation()
          Configures Gson to exclude all fields from consideration for serialization or deserialization that do not have the Expose annotation.
 GsonBuilder registerTypeAdapter(java.lang.reflect.Type typeOfT, java.lang.Object typeAdapter)
          Configures Gson for custom serialization or deserialization.
 GsonBuilder setFieldNamingPolicy(FieldNamingPolicy namingConvention)
          Configures Gson to apply a specific naming policy to an object's field during serialization and deserialization.
 GsonBuilder setPrettyPrinting()
          Configures Gson to output Json that fits in a page for pretty printing.
 GsonBuilder setVersion(double ignoreVersionsAfter)
          Configures Gson to enable versioning support.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GsonBuilder

public GsonBuilder()
Creates a GsonBuilder instance that can be used to build Gson with various configuration settings. GsonBuilder follows the builder pattern, and it is typically used by first invoking various configuration methods to set desired options, and finally calling create(). Here is an example:
 Gson gson = new GsonBuilder()
     .setVersion(1.0)
     .setPrettyPrinting()
     .registerTypeAdapter(Id.class, new IdTypeAdapter())
     .create();
 
The order of invocation of configuration methods does not matter.

Method Detail

setVersion

public GsonBuilder setVersion(double ignoreVersionsAfter)
Configures Gson to enable versioning support.

Parameters:
ignoreVersionsAfter - any field or type marked with a version higher than this value are ignored during serialization or deserialization.
Returns:
GsonBuilder to apply the Builder pattern.

excludeFieldsWithModifiers

public GsonBuilder excludeFieldsWithModifiers(int... modifiers)
Configures Gson to excludes all class fields that have the specified modifiers. By default, Gson will exclude all fields marked transient or static. This method will override that behavior.

Parameters:
modifiers - the field modifiers. You must use the modifiers specified in the Modifier class. For example, Modifier.TRANSIENT, Modifier.STATIC.
Returns:
GsonBuilder to apply the Builder pattern.

excludeFieldsWithoutExposeAnnotation

public GsonBuilder excludeFieldsWithoutExposeAnnotation()
Configures Gson to exclude all fields from consideration for serialization or deserialization that do not have the Expose annotation.

Returns:
GsonBuilder to apply the Builder pattern.

setFieldNamingPolicy

public GsonBuilder setFieldNamingPolicy(FieldNamingPolicy namingConvention)
Configures Gson to apply a specific naming policy to an object's field during serialization and deserialization.

Parameters:
namingConvention - the JSON field naming convention to use for serialization/deserializaiton
Returns:
GsonBuilder to apply the Builder pattern.

setPrettyPrinting

public GsonBuilder setPrettyPrinting()
Configures Gson to output Json that fits in a page for pretty printing. This option only affects Json serialization.

Returns:
GsonBuilder to apply the Builder pattern.

registerTypeAdapter

public GsonBuilder registerTypeAdapter(java.lang.reflect.Type typeOfT,
                                       java.lang.Object typeAdapter)
Configures Gson for custom serialization or deserialization. This method combines the registration of an InstanceCreator, JsonSerializer, and a JsonDeserializer. It is best used when a single object typeAdapter implements all the required interfaces for custom serialization with Gson. If an instance creator, serializer or deserializer was previously registered for the specified class, it is overwritten.

Parameters:
typeOfT - The class definition for the type T.
typeAdapter - This object must implement at least one of the InstanceCreator, JsonSerializer, and a JsonDeserializer interfaces.
Returns:
GsonBuilder to apply the Builder pattern.

create

public Gson create()
Creates a Gson instance based on the current configuration.

Returns:
an instance of Gson configured with the options currently set in this builder.