Class JsonMappingException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
com.fasterxml.jackson.core.JacksonException
com.fasterxml.jackson.core.JsonProcessingException
com.fasterxml.jackson.databind.DatabindException
com.fasterxml.jackson.databind.JsonMappingException
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
InvalidDefinitionException, MismatchedInputException, UnresolvedForwardReference, ValueInstantiationException

public class JsonMappingException extends DatabindException
Checked exception used to signal fatal problems with mapping of content, distinct from low-level I/O problems (signaled using simple IOExceptions) or data encoding/decoding problems (signaled with StreamReadException, StreamWriteException).

One additional feature is the ability to denote relevant path of references (during serialization/deserialization) to help in troubleshooting.

See Also:
  • Field Details

    • _path

      Path through which problem that triggering throwing of this exception was reached.
    • _processor

      protected transient Closeable _processor
      Underlying processor (JsonParser or JsonGenerator), if known.

      NOTE: typically not serializable hence transient

      Since:
      2.7
  • Constructor Details

    • JsonMappingException

      @Deprecated public JsonMappingException(String msg)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • JsonMappingException

      @Deprecated public JsonMappingException(String msg, Throwable rootCause)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • JsonMappingException

      @Deprecated public JsonMappingException(String msg, com.fasterxml.jackson.core.JsonLocation loc)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • JsonMappingException

      @Deprecated public JsonMappingException(String msg, com.fasterxml.jackson.core.JsonLocation loc, Throwable rootCause)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • JsonMappingException

      public JsonMappingException(Closeable processor, String msg)
      Since:
      2.7
    • JsonMappingException

      public JsonMappingException(Closeable processor, String msg, Throwable problem)
      Since:
      2.7
    • JsonMappingException

      public JsonMappingException(Closeable processor, String msg, com.fasterxml.jackson.core.JsonLocation loc)
      Since:
      2.7
  • Method Details

    • from

      public static JsonMappingException from(com.fasterxml.jackson.core.JsonParser p, String msg)
      Since:
      2.7
    • from

      public static JsonMappingException from(com.fasterxml.jackson.core.JsonParser p, String msg, Throwable problem)
      Since:
      2.7
    • from

      public static JsonMappingException from(com.fasterxml.jackson.core.JsonGenerator g, String msg)
      Since:
      2.7
    • from

      public static JsonMappingException from(com.fasterxml.jackson.core.JsonGenerator g, String msg, Throwable problem)
      Since:
      2.7
    • from

      public static JsonMappingException from(DeserializationContext ctxt, String msg)
      Since:
      2.7
    • from

      public static JsonMappingException from(DeserializationContext ctxt, String msg, Throwable t)
      Since:
      2.7
    • from

      public static JsonMappingException from(SerializerProvider ctxt, String msg)
      Since:
      2.7
    • from

      public static JsonMappingException from(SerializerProvider ctxt, String msg, Throwable problem)
      Since:
      2.7
    • fromUnexpectedIOE

      public static JsonMappingException fromUnexpectedIOE(IOException src)
      Factory method used when "upgrading" an IOException into JsonMappingException: usually only needed to comply with a signature.

      NOTE: since 2.9 should usually NOT be used on input-side (deserialization) exceptions; instead use method(s) of InputMismatchException

      Since:
      2.1
    • wrapWithPath

      public static JsonMappingException wrapWithPath(Throwable src, Object refFrom, String refFieldName)
      Method that can be called to either create a new JsonMappingException (if underlying exception is not a JsonMappingException), or augment given exception with given path/reference information. This version of method is called when the reference is through a non-indexed object, such as a Map or POJO/bean.
    • wrapWithPath

      public static JsonMappingException wrapWithPath(Throwable src, Object refFrom, int index)
      Method that can be called to either create a new JsonMappingException (if underlying exception is not a JsonMappingException), or augment given exception with given path/reference information. This version of method is called when the reference is through an index, which happens with arrays and Collections.
    • wrapWithPath

      public static JsonMappingException wrapWithPath(Throwable src, JsonMappingException.Reference ref)
      Method that can be called to either create a new JsonMappingException (if underlying exception is not a JsonMappingException), or augment given exception with given path/reference information.
    • withCause

      public JsonMappingException withCause(Throwable cause)
      Since:
      2.13
    • getPath

      Method for accessing full structural path within type hierarchy down to problematic property.
    • getPathReference

      public String getPathReference()
      Method for accessing description of path that lead to the problem that triggered this exception
    • getPathReference

      public StringBuilder getPathReference(StringBuilder sb)
    • prependPath

      public void prependPath(Object referrer, String fieldName)
      Method called to prepend a reference information in front of current path
      Specified by:
      prependPath in class DatabindException
    • prependPath

      public void prependPath(Object referrer, int index)
      Method called to prepend a reference information in front of current path
      Specified by:
      prependPath in class DatabindException
    • prependPath

      public void prependPath(JsonMappingException.Reference r)
    • getProcessor

      public Object getProcessor()
      Overrides:
      getProcessor in class com.fasterxml.jackson.core.JsonProcessingException
    • getLocalizedMessage

      public String getLocalizedMessage()
      Overrides:
      getLocalizedMessage in class Throwable
    • getMessage

      public String getMessage()
      Method is overridden so that we can properly inject description of problem path, if such is defined.
      Overrides:
      getMessage in class com.fasterxml.jackson.core.JsonProcessingException
    • _buildMessage

      protected String _buildMessage()
    • toString

      public String toString()
      Overrides:
      toString in class com.fasterxml.jackson.core.JsonProcessingException
    • _appendPathDesc

      protected void _appendPathDesc(StringBuilder sb)