com.fasterxml.jackson.databind.JsonNode ), as well as
writing Java Objects and trees as JSON.
Reading and writing (as well as related additional functionality) is accessed through
com.fasterxml.jackson.databind.ObjectMapper ,
com.fasterxml.jackson.databind.ObjectReader and
com.fasterxml.jackson.databind.ObjectWriter
classes.
In addition to reading and writing JSON content, it is also possible to use the
general databinding functionality for many other data formats, using
Jackson extension modules that provide such support: if so, you typically
simply construct an com.fasterxml.jackson.databind.ObjectMapper with
different underlying streaming parser, generator implementation.
The main starting point for operations is com.,
which can be used either directly (via multiple overloaded
readValue,
readTree,
writeValue and
writeTree methods, or it can be used as a configurable factory for constructing
fully immutable, thread-safe and reusable com.
and com. objects.
In addition to simple reading and writing of JSON as POJOs or JSON trees (represented as
com., and configurability needed to change aspects
of reading/writing, mapper contains additional functionality such as:
com.fasterxml.jackson.databind.ObjectMapper#convertValue(Object, Class) ,
com.fasterxml.jackson.databind.ObjectMapper#valueToTree(Object) and
com.fasterxml.jackson.databind.ObjectMapper#treeToValue(com.fasterxml.jackson.core.TreeNode, Class) methods.
com.fasterxml.jackson.databind.ObjectMapper#acceptJsonFormatVisitor(Class, com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper)
(note: actual handles are usually provided by various Jackson modules: mapper simply initiates calling of
callbacks, based on serializers registered)
Simplest usage is of form:
final ObjectMapper mapper = new ObjectMapper(); // can use static singleton, inject: just make sure to reuse!
MyValue value = new MyValue();
// ... and configure
File newState = new File("my-stuff.json");
mapper.writeValue(newState, value); // writes JSON serialization of MyValue instance
// or, read
MyValue older = mapper.readValue(new File("my-older-stuff.json"), MyValue.class);
// Or if you prefer JSON Tree representation:
JsonNode root = mapper.readTree(newState);
// and find values by, for example, using a com.fasterxml.jackson.core.JsonPointer expression:
int age = root.at("/personal/age").getValueAsInt();
For more usage, refer to
com.,
com. and
com.
Javadocs.
| Modifier and Type | Interface and Description |
|---|---|
| public interface | BeanProperty
Bean properties are logical entities that represent data that Java objects (POJOs (Plain Old Java Objects), sometimes also called "beans") contain; and that are accessed using accessors (methods like getters and setters, fields, constructor parameters). |
| public interface | EnumNamingStrategy
Defines how the string representation of an enum is converted into an external property name for mapping during deserialization. |
| public interface | JsonSerializable
Interface that can be implemented by objects that know how to
serialize themselves to JSON, using |
| Modifier and Type | Class and Description |
|---|---|
| public abstract class | AbstractTypeResolver
Defines interface for resolvers that can resolve abstract types into concrete ones; either by using static mappings, or possibly by materializing implementations dynamically. |
| public abstract class | AnnotationIntrospector
Abstract class that defines API used for introspecting annotation-based configuration for serialization and deserialization. |
| public abstract class | BeanDescription
Basic container for information gathered by |
| public abstract class | DatabindContext
Shared base class for |
| public abstract class | DatabindException
Intermediate base class for all databind level processing problems, as distinct from stream-level problems or I/O issues below. |
| public class | DeserializationConfig
Object that contains baseline configuration for deserialization process. |
| public abstract class | DeserializationContext
Context for the process of deserialization a single root-level value. |
| public class | EnumNamingStrategies
A container class for implementations of the |
| public abstract class | InjectableValues
Abstract class that defines API for objects that provide value to "inject" during deserialization. |
| public abstract class | JavaType
Base class for type token classes used both to contain information and as keys for deserializers. |
| public abstract class | JsonDeserializer<T>
Abstract class that defines API used by |
| public class | JsonMappingException
Checked exception used to signal fatal problems with mapping of
content, distinct from low-level I/O problems (signaled using
simple |
| public abstract class | JsonNode
Base class for all JSON nodes, which form the basis of JSON Tree Model that Jackson implements. |
| public abstract class | JsonSerializer<T>
Abstract class that defines API used by |
| public abstract class | KeyDeserializer
Abstract class that defines API used for deserializing JSON content field names into Java Map keys. |
| public class | |
| public class | MappingJsonFactory
Sub-class of |
| public abstract class | Module
Simple interface for extensions that can be registered with |
| public class | ObjectMapper
ObjectMapper provides functionality for reading and writing JSON,
either to and from basic POJOs (Plain Old Java Objects), or to and from
a general-purpose JSON Tree Model ( |
| public class | ObjectReader
Builder object that can be used for per-serialization configuration of deserialization parameters, such as root type to use or object to update (instead of constructing new instance). |
| public class | ObjectWriter
Builder object that can be used for per-serialization configuration of serialization parameters, such as JSON View and root type to use. |
| public class | PropertyMetadata
Simple container class used for storing "additional" metadata about properties. |
| public class | PropertyName
Simple value class used for containing names of properties as defined by annotations (and possibly other configuration sources). |
| public abstract class | PropertyNamingStrategies
Container for standard |
| public class | PropertyNamingStrategy
Class that defines how names of JSON properties ("external names") are derived from names of POJO methods and fields ("internal names"), in cases where no explicit annotations exist for naming. |
| public class | RuntimeJsonMappingException
Wrapper used when interface does not allow throwing a checked
|
| public class | SequenceWriter
Writer class similar to |
| public class | SerializationConfig
Object that contains baseline configuration for serialization process. |
| public abstract class | SerializerProvider
Class that defines API used by |
| Modifier and Type | Enum and Description |
|---|---|
| public enum | DeserializationFeature
Enumeration that defines simple on/off features that affect the way Java objects are deserialized from JSON
Note that features can be set both through
|
| public enum | MapperFeature
Enumeration that defines simple on/off features to set
for |
| public enum | SerializationFeature
Enumeration that defines simple on/off features that affect the way Java objects are serialized. |