org.springframework.messaging.converter

## Interface MessageConverter

All Known Subinterfaces:
  SmartMessageConverter

All Known Implementing Classes:
  AbstractMessageConverter, ByteArrayMessageConverter, CompositeMessageConverter, GenericMessageConverter, MappingJackson2MessageConverter, MarshallingMessageConverter, ProtobufJsonFormatMessageConverter, ProtobufMessageConverter, 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
`Object` `fromMessage(Message<?> message, Class<?> targetClass)` Convert the payload of a `Message` from a serialized form to a typed Object of the specified target class.
`Message<?>` `toMessage(Object payload, MessageHeaders headers)` Create a `Message` whose payload is the result of converting the given payload Object to serialized form.

### Method Detail

#### fromMessage

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

Convert the payload of a `Message` from a 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

    @Nullable
    Message<?> toMessage(Object payload,
                                   @Nullable
                                   MessageHeaders headers)

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
  `headers` - 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