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 = value1If 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 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.