Class 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 Detail

      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • PROPERTY_NAMING_STRATEGY

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

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

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

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

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

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

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

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

        public static final String DATE_FORMAT
        Property used to specify custom date format globally.
        See Also:
        Constant Field Values
    • Constructor Detail

      • JsonbConfig

        public JsonbConfig()
    • Method Detail

      • 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 JSONB_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 JSONB_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 JSONB_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.
        Parameters:
        dateFormat - Custom date format as specified in DateTimeFormatter.
        locale - Locale, default is null.
        Returns:
        This JsonbConfig instance.
      • withLocale

        public final JsonbConfig withLocale​(Locale locale)
        Property used to specify custom locale.
        Parameters:
        locale - Locale, must not be null.
        Returns:
        This JsonbConfig instance.