Properties
Transforms a Serializable class' properties into a single flat Map consisting of string keys and primitive type values, and vice versa.
If the given class has non-primitive property d
of arbitrary type D
, D
values are inserted into the same map; keys for such values are prefixed with string d.
:
@Serializable
class Data(val property1: String)
@Serializable
class DataHolder(val data: Data, val property2: String)
val map = Properties.store(DataHolder(Data("value1"), "value2"))
// map contents will be the following:
// property2 = value2
// data.property1 = value1
If the given class has a List property l
, each value from the list would be prefixed with l.N.
, where N is an index for a particular value. Map is treated as a [key,value,...]
list.
Parameters
A SerializersModule which should contain registered serializers for Contextual and Polymorphic serialization, if you have any.
Inheritors
Types
A Properties instance that can be used as default and does not have any SerializersModule installed.
Functions
Decodes properties from the given map to a value of type T using the given deserializer. T may contain properties of nullable types; they will be filled by non-null values from the map, if present.
Decodes properties from given map, assigns them to an object using serializer for reified type T and returns this object. String values are converted to respective primitive types using default conversion methods. T may contain properties of nullable types; they will be filled by non-null values from the map, if present.
Encodes properties from the given value to a map using the given serializer. null
values are omitted from the output.
Encodes properties from the given value to a map using the given serializer. Converts all primitive types to String using toString method. null
values are omitted from the output.