
commonMain.dk.cachet.carp.common.infrastructure.serialization.MapAsArraySerializer.kt Maven / Gradle / Ivy
package dk.cachet.carp.common.infrastructure.serialization
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable
import kotlinx.serialization.builtins.ArraySerializer
import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
/**
* Serializes a [Map] as an array of JSON objects which each have a "key" and "value"
* instead of a single JSON object containing values for all keys in the map, which is the default.
*
* This is useful when using JSON serialization and the serialized keys in a map violate JSON recommendations.
* E.g., the key may include discouraged symbols such as '.', or '$' for BSON.
*/
@OptIn( ExperimentalSerializationApi::class )
class MapAsArraySerializer(
private val keySerializer: KSerializer,
private val valueSerializer: KSerializer
) : KSerializer
© 2015 - 2025 Weber Informatics LLC | Privacy Policy