Jackson module (jar) to support JSON serialization and deserialization of Guava data types.
Module has been production-ready since version 2.3. Not all datatypes of Guava are support due to sheer size of the library; new support is added based on contributions.
To use module on Maven-based projects, use following dependency:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-guava</artifactId>
<version>2.4.0</version>
</dependency>
(or whatever version is most up-to-date at the moment)
Like all standard Jackson modules (libraries that implement Module interface), registration is done as follows:
ObjectMapper mapper = new ObjectMapper()
.registerModule(new GuavaModule());
after which functionality is available for all normal Jackson operations.
Configurable settings of the module are:
configureAbsentsAsNulls
(default: true) (added in 2.6)- If enabled, will consider
Optional.absent()
to be "null-equivalent", and NOT serialized if inclusion is defined asInclude.NON_NULL
- If disabled,
Optional.absent()
behaves as standard referential type, and is included withInclude.NON_NULL
- In either case,
Optional.absent()
values are always excluded with Inclusion values of:- NON_EMPTY
- NON_ABSENT (new in Jackson 2.6)
- If enabled, will consider
See Wiki for more information (javadocs, downloads).