com.fasterxml.jackson.databind

## Class JsonMappingException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.io.IOException
      - - com.fasterxml.jackson.core.JsonProcessingException
        - - com.fasterxml.jackson.databind.JsonMappingException

- All Implemented Interfaces:
    java.io.Serializable
  Direct Known Subclasses:
    InvalidFormatException, InvalidTypeIdException, PropertyBindingException, UnresolvedForwardReference

      public class JsonMappingException
      extends com.fasterxml.jackson.core.JsonProcessingException

  Checked exception used to signal fatal problems with mapping of content, distinct from low-level I/O problems (signaled using simple `IOException`s) or data encoding/decoding problems (signaled with `JsonParseException`, `JsonGenerationException`).

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

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `JsonMappingException.Reference` Simple bean class used to contain references.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.LinkedList<JsonMappingException.Reference>` | `_path` Path through which problem that triggering throwing of this exception was reached.
    `protected java.io.Closeable` | `_processor` Underlying processor (`JsonParser` or `JsonGenerator`), if known.

    - ### Fields inherited from class com.fasterxml.jackson.core.JsonProcessingException

      `_location`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JsonMappingException(java.io.Closeable processor, java.lang.String msg)`
    `JsonMappingException(java.io.Closeable processor, java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc)`
    `JsonMappingException(java.io.Closeable processor, java.lang.String msg, java.lang.Throwable problem)`
    `JsonMappingException(java.lang.String msg)` Deprecated. Since 2.7 Use variant that takes `JsonParser` instead
    `JsonMappingException(java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc)` Deprecated. Since 2.7 Use variant that takes `JsonParser` instead
    `JsonMappingException(java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc, java.lang.Throwable rootCause)` Deprecated. Since 2.7 Use variant that takes `JsonParser` instead
    `JsonMappingException(java.lang.String msg, java.lang.Throwable rootCause)` Deprecated. Since 2.7 Use variant that takes `JsonParser` instead

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `_appendPathDesc(java.lang.StringBuilder sb)`
    `protected java.lang.String` | `_buildMessage()`
    `static JsonMappingException` | `from(DeserializationContext ctxt, java.lang.String msg)`
    `static JsonMappingException` | `from(DeserializationContext ctxt, java.lang.String msg, java.lang.Throwable t)`
    `static JsonMappingException` | `from(com.fasterxml.jackson.core.JsonGenerator g, java.lang.String msg)`
    `static JsonMappingException` | `from(com.fasterxml.jackson.core.JsonGenerator g, java.lang.String msg, java.lang.Throwable problem)`
    `static JsonMappingException` | `from(com.fasterxml.jackson.core.JsonParser p, java.lang.String msg)`
    `static JsonMappingException` | `from(com.fasterxml.jackson.core.JsonParser p, java.lang.String msg, java.lang.Throwable problem)`
    `static JsonMappingException` | `from(SerializerProvider ctxt, java.lang.String msg)`
    `static JsonMappingException` | `from(SerializerProvider ctxt, java.lang.String msg, java.lang.Throwable problem)`
    `static JsonMappingException` | `fromUnexpectedIOE(java.io.IOException src)` Factory method used when "upgrading" an `IOException` into `JsonMappingException`: usually only needed to comply with a signature.
    `java.lang.String` | `getLocalizedMessage()`
    `java.lang.String` | `getMessage()` Method is overridden so that we can properly inject description of problem path, if such is defined.
    `java.util.List<JsonMappingException.Reference>` | `getPath()` Method for accessing full structural path within type hierarchy down to problematic property.
    `java.lang.String` | `getPathReference()` Method for accessing description of path that lead to the problem that triggered this exception
    `java.lang.StringBuilder` | `getPathReference(java.lang.StringBuilder sb)`
    `java.lang.Object` | `getProcessor()`
    `void` | `prependPath(JsonMappingException.Reference r)`
    `void` | `prependPath(java.lang.Object referrer, int index)` Method called to prepend a reference information in front of current path
    `void` | `prependPath(java.lang.Object referrer, java.lang.String fieldName)` Method called to prepend a reference information in front of current path
    `java.lang.String` | `toString()`
    `static JsonMappingException` | `wrapWithPath(java.lang.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.
    `static JsonMappingException` | `wrapWithPath(java.lang.Throwable src, java.lang.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.
    `static JsonMappingException` | `wrapWithPath(java.lang.Throwable src, java.lang.Object refFrom, java.lang.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.

    - ### Methods inherited from class com.fasterxml.jackson.core.JsonProcessingException

      `getLocation, getMessageSuffix, getOriginalMessage`

    - ### Methods inherited from class java.lang.Throwable

      `addSuppressed, fillInStackTrace, getCause, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### _path

          protected java.util.LinkedList<JsonMappingException.Reference> _path

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

    - #### _processor

          protected transient java.io.Closeable _processor

      Underlying processor (`JsonParser` or `JsonGenerator`), if known.

      NOTE: typically not serializable hence `transient`

      Since:
        2.7

  - ### Constructor Detail

    - #### JsonMappingException

          @Deprecated
          public JsonMappingException(java.lang.String msg)

      Deprecated. Since 2.7 Use variant that takes `JsonParser` instead

    - #### JsonMappingException

          @Deprecated
          public JsonMappingException(java.lang.String msg,
                                         java.lang.Throwable rootCause)

      Deprecated. Since 2.7 Use variant that takes `JsonParser` instead

    - #### JsonMappingException

          @Deprecated
          public JsonMappingException(java.lang.String msg,
                                         com.fasterxml.jackson.core.JsonLocation loc)

      Deprecated. Since 2.7 Use variant that takes `JsonParser` instead

    - #### JsonMappingException

          @Deprecated
          public JsonMappingException(java.lang.String msg,
                                         com.fasterxml.jackson.core.JsonLocation loc,
                                         java.lang.Throwable rootCause)

      Deprecated. Since 2.7 Use variant that takes `JsonParser` instead

    - #### JsonMappingException

          public JsonMappingException(java.io.Closeable processor,
                              java.lang.String msg)

      Since:
        2.7

    - #### JsonMappingException

          public JsonMappingException(java.io.Closeable processor,
                              java.lang.String msg,
                              java.lang.Throwable problem)

      Since:
        2.7

    - #### JsonMappingException

          public JsonMappingException(java.io.Closeable processor,
                              java.lang.String msg,
                              com.fasterxml.jackson.core.JsonLocation loc)

      Since:
        2.7

  - ### Method Detail

    - #### from

          public static JsonMappingException from(com.fasterxml.jackson.core.JsonParser p,
                                  java.lang.String msg)

      Since:
        2.7

    - #### from

          public static JsonMappingException from(com.fasterxml.jackson.core.JsonParser p,
                                  java.lang.String msg,
                                  java.lang.Throwable problem)

      Since:
        2.7

    - #### from

          public static JsonMappingException from(com.fasterxml.jackson.core.JsonGenerator g,
                                  java.lang.String msg)

      Since:
        2.7

    - #### from

          public static JsonMappingException from(com.fasterxml.jackson.core.JsonGenerator g,
                                  java.lang.String msg,
                                  java.lang.Throwable problem)

      Since:
        2.7

    - #### from

          public static JsonMappingException from(DeserializationContext ctxt,
                                  java.lang.String msg)

      Since:
        2.7

    - #### from

          public static JsonMappingException from(DeserializationContext ctxt,
                                  java.lang.String msg,
                                  java.lang.Throwable t)

      Since:
        2.7

    - #### from

          public static JsonMappingException from(SerializerProvider ctxt,
                                  java.lang.String msg)

      Since:
        2.7

    - #### from

          public static JsonMappingException from(SerializerProvider ctxt,
                                  java.lang.String msg,
                                  java.lang.Throwable problem)

      Since:
        2.7

    - #### fromUnexpectedIOE

          public static JsonMappingException fromUnexpectedIOE(java.io.IOException src)

      Factory method used when "upgrading" an `IOException` into `JsonMappingException`: usually only needed to comply with a signature.
      Since:
        2.1

    - #### wrapWithPath

          public static JsonMappingException wrapWithPath(java.lang.Throwable src,
                                          java.lang.Object refFrom,
                                          java.lang.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(java.lang.Throwable src,
                                          java.lang.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(java.lang.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.

    - #### getPath

          public java.util.List<JsonMappingException.Reference> getPath()

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

    - #### getPathReference

          public java.lang.String getPathReference()

      Method for accessing description of path that lead to the problem that triggered this exception

    - #### getPathReference

          public java.lang.StringBuilder getPathReference(java.lang.StringBuilder sb)

    - #### prependPath

          public void prependPath(java.lang.Object referrer,
                         java.lang.String fieldName)

      Method called to prepend a reference information in front of current path

    - #### prependPath

          public void prependPath(java.lang.Object referrer,
                         int index)

      Method called to prepend a reference information in front of current path

    - #### prependPath

          public void prependPath(JsonMappingException.Reference r)

    - #### getProcessor

          public java.lang.Object getProcessor()

      Overrides:
        `getProcessor` in class `com.fasterxml.jackson.core.JsonProcessingException`

    - #### getLocalizedMessage

          public java.lang.String getLocalizedMessage()

      Overrides:
        `getLocalizedMessage` in class `java.lang.Throwable`

    - #### getMessage

          public java.lang.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 java.lang.String _buildMessage()

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `com.fasterxml.jackson.core.JsonProcessingException`

    - #### _appendPathDesc

          protected void _appendPathDesc(java.lang.StringBuilder sb)