org.springframework.messaging.converter

## Interface MessageConverter

- All Known Implementing Classes:
    AbstractMessageConverter, ByteArrayMessageConverter, CompositeMessageConverter, MappingJackson2MessageConverter, SimpleMessageConverter, StringMessageConverter

      public interface MessageConverter

  A converter to turn the payload of a `Message` from serialized form to a typed Object and vice versa. The `MessageHeaders.CONTENT_TYPE` message header may be used to specify the media type of the message content.
  Since:
    4.0
  Author:
    Mark Fisher, Rossen Stoyanchev

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `fromMessage(Message<?> message, Class<?> targetClass)` Convert the payload of a `Message` from serialized form to a typed Object of the specified target class.
    `Message<?>` | `toMessage(Object payload, MessageHeaders header)` Create a `Message` whose payload is the result of converting the given payload Object to serialized form.

- - ### Method Detail

    - #### fromMessage

          Object fromMessage(Message<?> message,
                             Class<?> targetClass)

      Convert the payload of a `Message` from serialized form to a typed Object of the specified target class. The `MessageHeaders.CONTENT_TYPE` header should indicate the MIME type to convert from.

      If the converter does not support the specified media type or cannot perform the conversion, it should return `null`.

      Parameters:
        `message` - the input message
        `targetClass` - the target class for the conversion
      Returns:
        the result of the conversion or `null` if the converter cannot perform the conversion

    - #### toMessage

          Message<?> toMessage(Object payload,
                               MessageHeaders header)

      Create a `Message` whose payload is the result of converting the given payload Object to serialized form. The optional `MessageHeaders` parameter may contain a `MessageHeaders.CONTENT_TYPE` header to specify the target media type for the conversion and it may contain additional headers to be added to the message.

      If the converter does not support the specified media type or cannot perform the conversion, it should return `null`.

      Parameters:
        `payload` - the Object to convert
        `header` - optional headers for the message, may be `null`
      Returns:
        the new message or `null` if the converter does not support the Object type or the target media type