KotoolsTypesSerializersModule
Returns a collection of default serializers for types located in org.kotools.types package.
Note: All samples documented below use the JavaScript Object Notation (JSON) format.
EmailAddress
This function provides an object for serializing and deserializing an EmailAddress as String.
@Serializable
data class User(@Contextual val email: EmailAddress)
val email: EmailAddress? = EmailAddress.of("[email protected]")
checkNotNull(email)
val user = User(email)
val format = Json {
this.serializersModule = KotoolsTypesSerializersModule()
}
val encoded: String = format.encodeToString(user)
check(encoded == """{"email":"[email protected]"}""")
val decoded: User = format.decodeFromString(encoded)
check(decoded == user)Content copied to clipboard
EmailAddressRegex
This function provides an object for serializing and deserializing an EmailAddressRegex as String.
@Serializable
data class CustomEmailAddress(
@Contextual val email: EmailAddress,
@Contextual val regex: EmailAddressRegex
)
val email: EmailAddress? = EmailAddress.of("[email protected]")
checkNotNull(email)
val regex: EmailAddressRegex = EmailAddressRegex.alphabetic()
val customEmail = CustomEmailAddress(email, regex)
val format = Json {
this.serializersModule = KotoolsTypesSerializersModule()
}
val encoded: String = format.encodeToString(customEmail)
val encodedEmail = """"email":"[email protected]""""
val encodedRegex = """"regex":"^[a-z]+@[a-z]+\\.[a-z]+$""""
check(encoded == """{$encodedEmail,$encodedRegex}""")
val decoded: CustomEmailAddress = format.decodeFromString(encoded)
check(decoded == customEmail)Content copied to clipboard
Integer
This function provides an object for serializing and deserializing an Integer as String.
@Serializable
data class Account(@Contextual val balance: Integer)
val balance: Integer = Integer.fromLong(150)
val account = Account(balance)
val format = Json {
this.serializersModule = KotoolsTypesSerializersModule()
}
val encoded: String = format.encodeToString(account)
check(encoded == """{"balance":"150"}""")
val decoded: Account = format.decodeFromString(encoded)
check(decoded == account)Content copied to clipboard
Since
5.0.1