Class JsonbConfig

java.lang.Object
jakarta.json.bind.JsonbConfig

public class JsonbConfig extends Object

Supported Properties

All JSON Binding providers are required to support the following set of properties. Some providers may support additional properties.

jsonb.to.json.formatted - java.lang.Boolean
Controls whether or not the Jsonb toJson() methods will format the resulting JSON data with line breaks and indentation. A true value for this property indicates human readable indented data, while a false value indicates unformatted data. Default value is false (unformatted) if this property is not specified.
jsonb.to.json.encoding - java.lang.String
The Jsonb serialization toJson() methods will default to this property for encoding of output JSON data. Default value is 'UTF-8' if this property is not specified.
jsonb.from.json.encoding - java.lang.String
The Jsonb deserialization fromJson() methods will default to this property encoding of input JSON data if the encoding cannot be detected.
This object is not thread safe. Implementations are expected to make a defensive copy of the object before applying the configuration.
Since:
JSON Binding 1.0
  • Field Details

    • FORMATTING

      public static final String FORMATTING
      Property used to specify whether or not the serialized JSON data is formatted with line feeds and indentation.
      See Also:
    • ENCODING

      public static final String ENCODING
      The Jsonb serialization toJson() methods will default to this property for encoding of output JSON data. Default value is 'UTF-8'. The Jsonb deserialization fromJson() methods will default to this property encoding of input JSON data if the encoding cannot be detected automatically.
      See Also:
    • PROPERTY_NAMING_STRATEGY

      public static final String PROPERTY_NAMING_STRATEGY
      Property used to specify custom naming strategy.
      See Also:
    • PROPERTY_ORDER_STRATEGY

      public static final String PROPERTY_ORDER_STRATEGY
      Property used to specify custom order strategy.
      See Also:
    • NULL_VALUES

      public static final String NULL_VALUES
      Property used to specify null values serialization behavior.
      See Also:
    • STRICT_IJSON

      public static final String STRICT_IJSON
      Property used to specify strict I-JSON serialization compliance.
      See Also:
    • PROPERTY_VISIBILITY_STRATEGY

      public static final String PROPERTY_VISIBILITY_STRATEGY
      Property used to specify custom visibility strategy.
      See Also:
    • ADAPTERS

      public static final String ADAPTERS
      Property used to specify custom mapping adapters for generic types.
      See Also:
    • SERIALIZERS

      public static final String SERIALIZERS
      Property used to specify custom serializers.
      See Also:
    • DESERIALIZERS

      public static final String DESERIALIZERS
      Property used to specify custom deserializers.
      See Also:
    • BINARY_DATA_STRATEGY

      public static final String BINARY_DATA_STRATEGY
      Property used to specify custom binary data strategy.
      See Also:
    • DATE_FORMAT

      public static final String DATE_FORMAT
      Property used to specify custom date format globally.
      See Also:
    • LOCALE

      public static final String LOCALE
      Property used to specify locale globally.
      See Also:
    • CREATOR_PARAMETERS_REQUIRED

      public static final String CREATOR_PARAMETERS_REQUIRED
      Property used to specify required creator parameters.
      See Also:
  • Constructor Details

    • JsonbConfig

      public JsonbConfig()
  • Method Details

    • setProperty

      public final JsonbConfig setProperty(String name, Object value)
      Set the particular configuration property to a new value. The method can only be used to set one of the standard JSON Binding properties defined in this class or a provider specific property.
      Parameters:
      name - The name of the property to be set. This value can either be specified using one of the constant fields or a user supplied string.
      value - The value of the property to be set
      Returns:
      This JsonbConfig instance.
      Throws:
      NullPointerException - if the name parameter is null.
    • getProperty

      public final Optional<Object> getProperty(String name)
      Return value of particular configuration property. The method can only be used to retrieve one of the standard JSON Binding properties defined in this class or a provider specific property. Attempting to get an undefined property will result in an empty Optional value. See Supported Properties.
      Parameters:
      name - The name of the property to retrieve
      Returns:
      The value of the requested property
      Throws:
      NullPointerException - if the name parameter is null.
    • getAsMap

      public final Map<String,Object> getAsMap()
      Return all configuration properties as an unmodifiable map.
      Returns:
      All configuration properties as an unmodifiable map
    • withFormatting

      public final JsonbConfig withFormatting(Boolean formatted)
      Property used to specify whether or not the serialized JSON data is formatted with linefeeds and indentation. Configures value of FORMATTING property.
      Parameters:
      formatted - True means serialized data is formatted, false (default) means no formatting.
      Returns:
      This JsonbConfig instance.
    • withNullValues

      public final JsonbConfig withNullValues(Boolean serializeNullValues)
      Property used to specify whether null values should be serialized to JSON document or skipped. Configures value of NULL_VALUES property.
      Parameters:
      serializeNullValues - True means that null values will be serialized into JSON document, otherwise they will be effectively skipped.
      Returns:
      This JsonbConfig instance.
    • withEncoding

      public final JsonbConfig withEncoding(String encoding)
      The binding operations will default to this property for encoding of JSON data. For input data (fromJson), selected encoding is used if the encoding cannot be detected automatically. Default value is 'UTF-8'. Configures value of ENCODING property.
      Parameters:
      encoding - Valid character encoding as defined in the RFC 7159 and supported by Java Platform.
      Returns:
      This JsonbConfig instance.
    • withStrictIJSON

      public final JsonbConfig withStrictIJSON(Boolean enabled)
      Property used to specify whether strict I-JSON serialization compliance should be enforced. Configures value of STRICT_IJSON property.
      Parameters:
      enabled - True means data is serialized in strict compliance according to RFC 7493.
      Returns:
      This JsonbConfig instance.
    • withPropertyNamingStrategy

      public final JsonbConfig withPropertyNamingStrategy(PropertyNamingStrategy propertyNamingStrategy)
      Property used to specify custom naming strategy. Configures value of PROPERTY_NAMING_STRATEGY property.
      Parameters:
      propertyNamingStrategy - Custom naming strategy which affects serialization and deserialization.
      Returns:
      This JsonbConfig instance.
    • withPropertyNamingStrategy

      public final JsonbConfig withPropertyNamingStrategy(String propertyNamingStrategy)
      Property used to specify custom naming strategy. Configures value of PROPERTY_NAMING_STRATEGY property.
      Parameters:
      propertyNamingStrategy - Predefined naming strategy which affects serialization and deserialization.
      Returns:
      This JsonbConfig instance.
    • withPropertyOrderStrategy

      public final JsonbConfig withPropertyOrderStrategy(String propertyOrderStrategy)
      Property used to specify property order strategy. Configures values of PROPERTY_ORDER_STRATEGY property.
      Parameters:
      propertyOrderStrategy - Predefined property order strategy which affects serialization.
      Returns:
      This JsonbConfig instance.
    • withPropertyVisibilityStrategy

      public final JsonbConfig withPropertyVisibilityStrategy(PropertyVisibilityStrategy propertyVisibilityStrategy)
      Property used to specify custom property visibility strategy. Configures value of PROPERTY_VISIBILITY_STRATEGY property.
      Parameters:
      propertyVisibilityStrategy - Custom property visibility strategy which affects serialization and deserialization.
      Returns:
      This JsonbConfig instance.
    • withAdapters

      public final JsonbConfig withAdapters(JsonbAdapter... adapters)
      Property used to specify custom mapping adapters. Configures value of ADAPTERS property. Calling withAdapters more than once will merge the adapters with previous value.
      Parameters:
      adapters - Custom mapping adapters which affects serialization and deserialization.
      Returns:
      This JsonbConfig instance.
    • withSerializers

      public final JsonbConfig withSerializers(JsonbSerializer... serializers)
      Property used to specify custom serializers. Configures value of SERIALIZERS property. Calling withSerializers more than once will merge the serializers with previous value.
      Parameters:
      serializers - Custom serializers which affects serialization.
      Returns:
      This JsonbConfig instance.
    • withDeserializers

      public final JsonbConfig withDeserializers(JsonbDeserializer... deserializers)
      Property used to specify custom deserializers. Configures value of DESERIALIZERS property. Calling withDeserializers more than once will merge the deserializers with previous value.
      Parameters:
      deserializers - Custom deserializers which affects deserialization.
      Returns:
      This JsonbConfig instance.
    • withBinaryDataStrategy

      public final JsonbConfig withBinaryDataStrategy(String binaryDataStrategy)
      Property used to specify custom binary data strategy. Configures value of BINARY_DATA_STRATEGY property.
      Parameters:
      binaryDataStrategy - Custom binary data strategy which affects serialization and deserialization.
      Returns:
      This JsonbConfig instance.
    • withDateFormat

      public final JsonbConfig withDateFormat(String dateFormat, Locale locale)
      Property used to specify custom date format. This format will be used by default for all date classes serialization and deserialization. Configures values of DATE_FORMAT and LOCALE properties.
      Parameters:
      dateFormat - Custom date format as specified in DateTimeFormatter.
      locale - Locale, if null is specified Locale.getDefault() will be used.
      Returns:
      This JsonbConfig instance.
    • withLocale

      public final JsonbConfig withLocale(Locale locale)
      Property used to specify custom locale. Configures value of LOCALE property.
      Parameters:
      locale - Locale, must not be null.
      Returns:
      This JsonbConfig instance.
    • withCreatorParametersRequired

      public final JsonbConfig withCreatorParametersRequired(boolean requiredParameters)
      Property used to specify whether all creator parameters should be treated as required.
      Default value is false.
      Parameters:
      requiredParameters - Whether creator parameters are required
      Returns:
      This JsonbConfig instance.