Class ObjectCodec

  • All Implemented Interfaces:
    Versioned
    Direct Known Subclasses:
    ObjectMapper, ObjectReader

    public abstract class ObjectCodec
    extends TreeCodec
    implements Versioned
    Abstract class that defines the interface that JsonParser and JsonGenerator use to serialize and deserialize regular Java objects (POJOs aka Beans).

    The standard implementation of this class is com.fasterxml.jackson.databind.ObjectMapper, defined in the "jackson-databind".

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      abstract TreeNode createArrayNode()
      Method for construct root level Array nodes for Tree Model instances.
      abstract TreeNode createObjectNode()
      Method for construct root level Object nodes for Tree Model instances.
      JsonFactory getFactory()
      Accessor for finding underlying data format factory (JsonFactory) codec will use for data binding.
      JsonFactory getJsonFactory()
      Deprecated.
      Since 2.1: Use getFactory() instead.
      abstract <T extends TreeNode>
      T
      readTree​(JsonParser p)
      Method to deserialize JSON content as tree expressed using set of TreeNode instances.
      abstract <T> T readValue​(JsonParser p, ResolvedType valueType)
      Method to deserialize JSON content into a POJO, type specified with fully resolved type object (so it can be a generic type, including containers like Collection and Map).
      abstract <T> T readValue​(JsonParser p, TypeReference<T> valueTypeRef)
      Method to deserialize JSON content into a Java type, reference to which is passed as argument.
      abstract <T> T readValue​(JsonParser p, java.lang.Class<T> valueType)
      Method to deserialize JSON content into a non-container type (it can be an array type, however): typically a bean, array or a wrapper type (like Boolean).
      abstract <T> java.util.Iterator<T> readValues​(JsonParser p, ResolvedType valueType)
      Method for reading sequence of Objects from parser stream, all with same specified value type.
      abstract <T> java.util.Iterator<T> readValues​(JsonParser p, TypeReference<T> valueTypeRef)
      Method for reading sequence of Objects from parser stream, all with same specified value type.
      abstract <T> java.util.Iterator<T> readValues​(JsonParser p, java.lang.Class<T> valueType)
      Method for reading sequence of Objects from parser stream, all with same specified value type.
      abstract JsonParser treeAsTokens​(TreeNode n)
      Method for constructing a JsonParser for reading contents of a JSON tree, as if it was external serialized JSON content.
      abstract <T> T treeToValue​(TreeNode n, java.lang.Class<T> valueType)
      Convenience method for converting given JSON tree into instance of specified value type.
      abstract Version version()
      Method called to detect version of the component that implements this interface; returned version should never be null, but may return specific "not available" instance (see Version for details).
      abstract void writeTree​(JsonGenerator gen, TreeNode tree)  
      abstract void writeValue​(JsonGenerator gen, java.lang.Object value)
      Method to serialize given Java Object, using generator provided.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • version

        public abstract Version version()
        Description copied from interface: Versioned
        Method called to detect version of the component that implements this interface; returned version should never be null, but may return specific "not available" instance (see Version for details).
        Specified by:
        version in interface Versioned
      • readValue

        public abstract <T> T readValue​(JsonParser p,
                                        java.lang.Class<T> valueType)
                                 throws java.io.IOException
        Method to deserialize JSON content into a non-container type (it can be an array type, however): typically a bean, array or a wrapper type (like Boolean).

        Note: this method should NOT be used if the result type is a container (Collection or Map. The reason is that due to type erasure, key and value types can not be introspected when using this method.

        Throws:
        java.io.IOException
      • readValue

        public abstract <T> T readValue​(JsonParser p,
                                        TypeReference<T> valueTypeRef)
                                 throws java.io.IOException
        Method to deserialize JSON content into a Java type, reference to which is passed as argument. Type is passed using so-called "super type token" and specifically needs to be used if the root type is a parameterized (generic) container type.
        Throws:
        java.io.IOException
      • readValue

        public abstract <T> T readValue​(JsonParser p,
                                        ResolvedType valueType)
                                 throws java.io.IOException
        Method to deserialize JSON content into a POJO, type specified with fully resolved type object (so it can be a generic type, including containers like Collection and Map).
        Throws:
        java.io.IOException
      • readValues

        public abstract <T> java.util.Iterator<T> readValues​(JsonParser p,
                                                             java.lang.Class<T> valueType)
                                                      throws java.io.IOException
        Method for reading sequence of Objects from parser stream, all with same specified value type.
        Throws:
        java.io.IOException
      • readValues

        public abstract <T> java.util.Iterator<T> readValues​(JsonParser p,
                                                             TypeReference<T> valueTypeRef)
                                                      throws java.io.IOException
        Method for reading sequence of Objects from parser stream, all with same specified value type.
        Throws:
        java.io.IOException
      • readValues

        public abstract <T> java.util.Iterator<T> readValues​(JsonParser p,
                                                             ResolvedType valueType)
                                                      throws java.io.IOException
        Method for reading sequence of Objects from parser stream, all with same specified value type.
        Throws:
        java.io.IOException
      • writeValue

        public abstract void writeValue​(JsonGenerator gen,
                                        java.lang.Object value)
                                 throws java.io.IOException
        Method to serialize given Java Object, using generator provided.
        Throws:
        java.io.IOException
      • readTree

        public abstract <T extends TreeNode> T readTree​(JsonParser p)
                                                 throws java.io.IOException
        Method to deserialize JSON content as tree expressed using set of TreeNode instances. Returns root of the resulting tree (where root can consist of just a single node if the current event is a value event, not container). Empty or whitespace documents return null.
        Specified by:
        readTree in class TreeCodec
        Returns:
        next tree from p, or null if empty.
        Throws:
        java.io.IOException
      • createObjectNode

        public abstract TreeNode createObjectNode()
        Method for construct root level Object nodes for Tree Model instances.
        Specified by:
        createObjectNode in class TreeCodec
      • createArrayNode

        public abstract TreeNode createArrayNode()
        Method for construct root level Array nodes for Tree Model instances.
        Specified by:
        createArrayNode in class TreeCodec
      • treeToValue

        public abstract <T> T treeToValue​(TreeNode n,
                                          java.lang.Class<T> valueType)
                                   throws JsonProcessingException
        Convenience method for converting given JSON tree into instance of specified value type. This is equivalent to first constructing a JsonParser to iterate over contents of the tree, and using that parser for data binding.
        Throws:
        JsonProcessingException
      • getJsonFactory

        @Deprecated
        public JsonFactory getJsonFactory()
        Deprecated.
        Since 2.1: Use getFactory() instead.
      • getFactory

        public JsonFactory getFactory()
        Accessor for finding underlying data format factory (JsonFactory) codec will use for data binding.
        Since:
        2.1