org.springframework.http.converter.protobuf

## Class ProtobufJsonFormatHttpMessageConverter

- java.lang.Object
- - org.springframework.http.converter.AbstractHttpMessageConverter<com.google.protobuf.Message>
  - - org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter
    - - org.springframework.http.converter.protobuf.ProtobufJsonFormatHttpMessageConverter

- All Implemented Interfaces:
    HttpMessageConverter<com.google.protobuf.Message>

      public class ProtobufJsonFormatHttpMessageConverter
      extends ProtobufHttpMessageConverter

  Subclass of `ProtobufHttpMessageConverter` which enforces the use of Protobuf 3 and its official library `"com.google.protobuf:protobuf-java-util"` for JSON processing.

  Most importantly, this class allows for custom JSON parser and printer configurations through the `JsonFormat` utility. If no special parser or printer configuration is given, default variants will be used instead.

  Requires Protobuf 3.x and `"com.google.protobuf:protobuf-java-util"` 3.x, with 3.3 or higher recommended.

  Since:
    5.0
  Author:
    Juergen Hoeller, Sebastien Deleuze
  See Also:
    `JsonFormat.parser()`, `JsonFormat.printer()`, `ProtobufJsonFormatHttpMessageConverter(com.google.protobuf.util.JsonFormat.Parser, com.google.protobuf.util.JsonFormat.Printer)`

- - ### Field Summary

    - ### Fields inherited from class org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter

      `DEFAULT_CHARSET, PROTOBUF, X_PROTOBUF_MESSAGE_HEADER, X_PROTOBUF_SCHEMA_HEADER`

    - ### Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter

      `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProtobufJsonFormatHttpMessageConverter()` Constructor with default instances of `JsonFormat.Parser`, `JsonFormat.Printer`, and `ExtensionRegistry`.
    `ProtobufJsonFormatHttpMessageConverter(com.google.protobuf.util.JsonFormat.Parser parser, com.google.protobuf.util.JsonFormat.Printer printer)` Constructor with given instances of `JsonFormat.Parser`, `JsonFormat.Printer`, and a default instance of `ExtensionRegistry`.
    `ProtobufJsonFormatHttpMessageConverter(com.google.protobuf.util.JsonFormat.Parser parser, com.google.protobuf.util.JsonFormat.Printer printer, com.google.protobuf.ExtensionRegistry extensionRegistry)` Constructor with given instances of `JsonFormat.Parser`, `JsonFormat.Printer`, and `ExtensionRegistry`.
    `ProtobufJsonFormatHttpMessageConverter(com.google.protobuf.util.JsonFormat.Parser parser, com.google.protobuf.util.JsonFormat.Printer printer, ExtensionRegistryInitializer registryInitializer)` Deprecated. as of 5.1, in favor of `ProtobufJsonFormatHttpMessageConverter(com.google.protobuf.util.JsonFormat.Parser, com.google.protobuf.util.JsonFormat.Printer, ExtensionRegistry)`

  - ### Method Summary

    - ### Methods inherited from class org.springframework.http.converter.protobuf.ProtobufHttpMessageConverter

      `canWrite, getDefaultContentType, readInternal, supports, writeInternal`

    - ### Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter

      `addDefaultHeaders, canRead, canRead, canWrite, getContentLength, getDefaultCharset, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, write`

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

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

    - ### Methods inherited from interface org.springframework.http.converter.HttpMessageConverter

      `getSupportedMediaTypes`

- - ### Constructor Detail

    - #### ProtobufJsonFormatHttpMessageConverter

          public ProtobufJsonFormatHttpMessageConverter()

      Constructor with default instances of `JsonFormat.Parser`, `JsonFormat.Printer`, and `ExtensionRegistry`.

    - #### ProtobufJsonFormatHttpMessageConverter

          public ProtobufJsonFormatHttpMessageConverter(@Nullable
                                                        com.google.protobuf.util.JsonFormat.Parser parser,
                                                        @Nullable
                                                        com.google.protobuf.util.JsonFormat.Printer printer)

      Constructor with given instances of `JsonFormat.Parser`, `JsonFormat.Printer`, and a default instance of `ExtensionRegistry`.

    - #### ProtobufJsonFormatHttpMessageConverter

          public ProtobufJsonFormatHttpMessageConverter(@Nullable
                                                        com.google.protobuf.util.JsonFormat.Parser parser,
                                                        @Nullable
                                                        com.google.protobuf.util.JsonFormat.Printer printer,
                                                        @Nullable
                                                        com.google.protobuf.ExtensionRegistry extensionRegistry)

      Constructor with given instances of `JsonFormat.Parser`, `JsonFormat.Printer`, and `ExtensionRegistry`.

    - #### ProtobufJsonFormatHttpMessageConverter

          @Deprecated
          public ProtobufJsonFormatHttpMessageConverter(@Nullable
                                                                    com.google.protobuf.util.JsonFormat.Parser parser,
                                                                    @Nullable
                                                                    com.google.protobuf.util.JsonFormat.Printer printer,
                                                                    @Nullable
                                                                    ExtensionRegistryInitializer registryInitializer)

      Deprecated. as of 5.1, in favor of `ProtobufJsonFormatHttpMessageConverter(com.google.protobuf.util.JsonFormat.Parser, com.google.protobuf.util.JsonFormat.Printer, ExtensionRegistry)`
      Construct a new `ProtobufJsonFormatHttpMessageConverter` with the given `JsonFormat.Parser` and `JsonFormat.Printer` configuration, also accepting an initializer that allows the registration of message extensions.
      Parameters:
        `parser` - the JSON parser configuration
        `printer` - the JSON printer configuration
        `registryInitializer` - an initializer for message extensions