forked from loafle/openapi-generator-original
[kotlin][client] make kotlinx serialization configurable (#20955)
* [kotlin][client] make kotlinx serialization configurable from outside * [kotlin][client] make kotlinx serialization configurable from outside
This commit is contained in:
parent
11c56117d2
commit
701b6bd576
@ -50,7 +50,9 @@ import org.threeten.bp.OffsetDateTime
|
|||||||
{{/threetenbp}}
|
{{/threetenbp}}
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.json.JsonBuilder
|
||||||
import kotlinx.serialization.modules.SerializersModule
|
import kotlinx.serialization.modules.SerializersModule
|
||||||
|
import kotlinx.serialization.modules.SerializersModuleBuilder
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
@ -126,42 +128,70 @@ import java.util.concurrent.atomic.AtomicLong
|
|||||||
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, {{failOnUnknownProperties}})
|
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, {{failOnUnknownProperties}})
|
||||||
{{/jackson}}
|
{{/jackson}}
|
||||||
{{#kotlinx_serialization}}
|
{{#kotlinx_serialization}}
|
||||||
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"))
|
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"), level = DeprecationLevel.ERROR)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinSerializationAdapters: SerializersModule
|
val kotlinSerializationAdapters: SerializersModule
|
||||||
get() { return kotlinxSerializationAdapters }
|
get() { return kotlinxSerializationAdapters }
|
||||||
|
|
||||||
|
private var isAdaptersInitialized = false
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinxSerializationAdapters = SerializersModule {
|
val kotlinxSerializationAdapters: SerializersModule by lazy {
|
||||||
contextual(BigDecimal::class, BigDecimalAdapter)
|
isAdaptersInitialized = true
|
||||||
contextual(BigInteger::class, BigIntegerAdapter)
|
SerializersModule {
|
||||||
{{^kotlinx-datetime}}
|
contextual(BigDecimal::class, BigDecimalAdapter)
|
||||||
contextual(LocalDate::class, LocalDateAdapter)
|
contextual(BigInteger::class, BigIntegerAdapter)
|
||||||
contextual(LocalDateTime::class, LocalDateTimeAdapter)
|
{{^kotlinx-datetime}}
|
||||||
contextual(OffsetDateTime::class, OffsetDateTimeAdapter)
|
contextual(LocalDate::class, LocalDateAdapter)
|
||||||
{{/kotlinx-datetime}}
|
contextual(LocalDateTime::class, LocalDateTimeAdapter)
|
||||||
contextual(UUID::class, UUIDAdapter)
|
contextual(OffsetDateTime::class, OffsetDateTimeAdapter)
|
||||||
contextual(AtomicInteger::class, AtomicIntegerAdapter)
|
{{/kotlinx-datetime}}
|
||||||
contextual(AtomicLong::class, AtomicLongAdapter)
|
contextual(UUID::class, UUIDAdapter)
|
||||||
contextual(AtomicBoolean::class, AtomicBooleanAdapter)
|
contextual(AtomicInteger::class, AtomicIntegerAdapter)
|
||||||
contextual(URI::class, URIAdapter)
|
contextual(AtomicLong::class, AtomicLongAdapter)
|
||||||
contextual(URL::class, URLAdapter)
|
contextual(AtomicBoolean::class, AtomicBooleanAdapter)
|
||||||
contextual(StringBuilder::class, StringBuilderAdapter)
|
contextual(URI::class, URIAdapter)
|
||||||
|
contextual(URL::class, URLAdapter)
|
||||||
|
contextual(StringBuilder::class, StringBuilderAdapter)
|
||||||
|
|
||||||
|
apply(kotlinxSerializationAdaptersConfiguration)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"))
|
var kotlinxSerializationAdaptersConfiguration: SerializersModuleBuilder.() -> Unit = {}
|
||||||
|
set(value) {
|
||||||
|
check(!isAdaptersInitialized) {
|
||||||
|
"Cannot configure kotlinxSerializationAdaptersConfiguration after kotlinxSerializationAdapters has been initialized."
|
||||||
|
}
|
||||||
|
field = value
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"), level = DeprecationLevel.ERROR)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val jvmJson: Json
|
val jvmJson: Json
|
||||||
get() { return kotlinxSerializationJson }
|
get() { return kotlinxSerializationJson }
|
||||||
|
|
||||||
|
private var isJsonInitialized = false
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinxSerializationJson: Json by lazy {
|
val kotlinxSerializationJson: Json by lazy {
|
||||||
|
isJsonInitialized = true
|
||||||
Json {
|
Json {
|
||||||
serializersModule = kotlinxSerializationAdapters
|
serializersModule = kotlinxSerializationAdapters
|
||||||
encodeDefaults = true
|
encodeDefaults = true
|
||||||
ignoreUnknownKeys = true
|
ignoreUnknownKeys = true
|
||||||
isLenient = true
|
isLenient = true
|
||||||
|
|
||||||
|
apply(kotlinxSerializationJsonConfiguration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var kotlinxSerializationJsonConfiguration: JsonBuilder.() -> Unit = {}
|
||||||
|
set(value) {
|
||||||
|
check(!isJsonInitialized) {
|
||||||
|
"Cannot configure kotlinxSerializationJsonConfiguration after kotlinxSerializationJson has been initialized."
|
||||||
|
}
|
||||||
|
field = value
|
||||||
|
}
|
||||||
{{/kotlinx_serialization}}
|
{{/kotlinx_serialization}}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,9 @@ import java.time.LocalDateTime
|
|||||||
import java.time.OffsetDateTime
|
import java.time.OffsetDateTime
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.json.JsonBuilder
|
||||||
import kotlinx.serialization.modules.SerializersModule
|
import kotlinx.serialization.modules.SerializersModule
|
||||||
|
import kotlinx.serialization.modules.SerializersModuleBuilder
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
@ -15,39 +17,67 @@ import java.util.concurrent.atomic.AtomicInteger
|
|||||||
import java.util.concurrent.atomic.AtomicLong
|
import java.util.concurrent.atomic.AtomicLong
|
||||||
|
|
||||||
object Serializer {
|
object Serializer {
|
||||||
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"))
|
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"), level = DeprecationLevel.ERROR)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinSerializationAdapters: SerializersModule
|
val kotlinSerializationAdapters: SerializersModule
|
||||||
get() { return kotlinxSerializationAdapters }
|
get() { return kotlinxSerializationAdapters }
|
||||||
|
|
||||||
|
private var isAdaptersInitialized = false
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinxSerializationAdapters = SerializersModule {
|
val kotlinxSerializationAdapters: SerializersModule by lazy {
|
||||||
contextual(BigDecimal::class, BigDecimalAdapter)
|
isAdaptersInitialized = true
|
||||||
contextual(BigInteger::class, BigIntegerAdapter)
|
SerializersModule {
|
||||||
contextual(LocalDate::class, LocalDateAdapter)
|
contextual(BigDecimal::class, BigDecimalAdapter)
|
||||||
contextual(LocalDateTime::class, LocalDateTimeAdapter)
|
contextual(BigInteger::class, BigIntegerAdapter)
|
||||||
contextual(OffsetDateTime::class, OffsetDateTimeAdapter)
|
contextual(LocalDate::class, LocalDateAdapter)
|
||||||
contextual(UUID::class, UUIDAdapter)
|
contextual(LocalDateTime::class, LocalDateTimeAdapter)
|
||||||
contextual(AtomicInteger::class, AtomicIntegerAdapter)
|
contextual(OffsetDateTime::class, OffsetDateTimeAdapter)
|
||||||
contextual(AtomicLong::class, AtomicLongAdapter)
|
contextual(UUID::class, UUIDAdapter)
|
||||||
contextual(AtomicBoolean::class, AtomicBooleanAdapter)
|
contextual(AtomicInteger::class, AtomicIntegerAdapter)
|
||||||
contextual(URI::class, URIAdapter)
|
contextual(AtomicLong::class, AtomicLongAdapter)
|
||||||
contextual(URL::class, URLAdapter)
|
contextual(AtomicBoolean::class, AtomicBooleanAdapter)
|
||||||
contextual(StringBuilder::class, StringBuilderAdapter)
|
contextual(URI::class, URIAdapter)
|
||||||
|
contextual(URL::class, URLAdapter)
|
||||||
|
contextual(StringBuilder::class, StringBuilderAdapter)
|
||||||
|
|
||||||
|
apply(kotlinxSerializationAdaptersConfiguration)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"))
|
var kotlinxSerializationAdaptersConfiguration: SerializersModuleBuilder.() -> Unit = {}
|
||||||
|
set(value) {
|
||||||
|
check(!isAdaptersInitialized) {
|
||||||
|
"Cannot configure kotlinxSerializationAdaptersConfiguration after kotlinxSerializationAdapters has been initialized."
|
||||||
|
}
|
||||||
|
field = value
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"), level = DeprecationLevel.ERROR)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val jvmJson: Json
|
val jvmJson: Json
|
||||||
get() { return kotlinxSerializationJson }
|
get() { return kotlinxSerializationJson }
|
||||||
|
|
||||||
|
private var isJsonInitialized = false
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinxSerializationJson: Json by lazy {
|
val kotlinxSerializationJson: Json by lazy {
|
||||||
|
isJsonInitialized = true
|
||||||
Json {
|
Json {
|
||||||
serializersModule = kotlinxSerializationAdapters
|
serializersModule = kotlinxSerializationAdapters
|
||||||
encodeDefaults = true
|
encodeDefaults = true
|
||||||
ignoreUnknownKeys = true
|
ignoreUnknownKeys = true
|
||||||
isLenient = true
|
isLenient = true
|
||||||
|
|
||||||
|
apply(kotlinxSerializationJsonConfiguration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var kotlinxSerializationJsonConfiguration: JsonBuilder.() -> Unit = {}
|
||||||
|
set(value) {
|
||||||
|
check(!isJsonInitialized) {
|
||||||
|
"Cannot configure kotlinxSerializationJsonConfiguration after kotlinxSerializationJson has been initialized."
|
||||||
|
}
|
||||||
|
field = value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,9 @@ import java.time.LocalDateTime
|
|||||||
import java.time.OffsetDateTime
|
import java.time.OffsetDateTime
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.json.JsonBuilder
|
||||||
import kotlinx.serialization.modules.SerializersModule
|
import kotlinx.serialization.modules.SerializersModule
|
||||||
|
import kotlinx.serialization.modules.SerializersModuleBuilder
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
@ -15,39 +17,67 @@ import java.util.concurrent.atomic.AtomicInteger
|
|||||||
import java.util.concurrent.atomic.AtomicLong
|
import java.util.concurrent.atomic.AtomicLong
|
||||||
|
|
||||||
object Serializer {
|
object Serializer {
|
||||||
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"))
|
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"), level = DeprecationLevel.ERROR)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinSerializationAdapters: SerializersModule
|
val kotlinSerializationAdapters: SerializersModule
|
||||||
get() { return kotlinxSerializationAdapters }
|
get() { return kotlinxSerializationAdapters }
|
||||||
|
|
||||||
|
private var isAdaptersInitialized = false
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinxSerializationAdapters = SerializersModule {
|
val kotlinxSerializationAdapters: SerializersModule by lazy {
|
||||||
contextual(BigDecimal::class, BigDecimalAdapter)
|
isAdaptersInitialized = true
|
||||||
contextual(BigInteger::class, BigIntegerAdapter)
|
SerializersModule {
|
||||||
contextual(LocalDate::class, LocalDateAdapter)
|
contextual(BigDecimal::class, BigDecimalAdapter)
|
||||||
contextual(LocalDateTime::class, LocalDateTimeAdapter)
|
contextual(BigInteger::class, BigIntegerAdapter)
|
||||||
contextual(OffsetDateTime::class, OffsetDateTimeAdapter)
|
contextual(LocalDate::class, LocalDateAdapter)
|
||||||
contextual(UUID::class, UUIDAdapter)
|
contextual(LocalDateTime::class, LocalDateTimeAdapter)
|
||||||
contextual(AtomicInteger::class, AtomicIntegerAdapter)
|
contextual(OffsetDateTime::class, OffsetDateTimeAdapter)
|
||||||
contextual(AtomicLong::class, AtomicLongAdapter)
|
contextual(UUID::class, UUIDAdapter)
|
||||||
contextual(AtomicBoolean::class, AtomicBooleanAdapter)
|
contextual(AtomicInteger::class, AtomicIntegerAdapter)
|
||||||
contextual(URI::class, URIAdapter)
|
contextual(AtomicLong::class, AtomicLongAdapter)
|
||||||
contextual(URL::class, URLAdapter)
|
contextual(AtomicBoolean::class, AtomicBooleanAdapter)
|
||||||
contextual(StringBuilder::class, StringBuilderAdapter)
|
contextual(URI::class, URIAdapter)
|
||||||
|
contextual(URL::class, URLAdapter)
|
||||||
|
contextual(StringBuilder::class, StringBuilderAdapter)
|
||||||
|
|
||||||
|
apply(kotlinxSerializationAdaptersConfiguration)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"))
|
var kotlinxSerializationAdaptersConfiguration: SerializersModuleBuilder.() -> Unit = {}
|
||||||
|
set(value) {
|
||||||
|
check(!isAdaptersInitialized) {
|
||||||
|
"Cannot configure kotlinxSerializationAdaptersConfiguration after kotlinxSerializationAdapters has been initialized."
|
||||||
|
}
|
||||||
|
field = value
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"), level = DeprecationLevel.ERROR)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val jvmJson: Json
|
val jvmJson: Json
|
||||||
get() { return kotlinxSerializationJson }
|
get() { return kotlinxSerializationJson }
|
||||||
|
|
||||||
|
private var isJsonInitialized = false
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinxSerializationJson: Json by lazy {
|
val kotlinxSerializationJson: Json by lazy {
|
||||||
|
isJsonInitialized = true
|
||||||
Json {
|
Json {
|
||||||
serializersModule = kotlinxSerializationAdapters
|
serializersModule = kotlinxSerializationAdapters
|
||||||
encodeDefaults = true
|
encodeDefaults = true
|
||||||
ignoreUnknownKeys = true
|
ignoreUnknownKeys = true
|
||||||
isLenient = true
|
isLenient = true
|
||||||
|
|
||||||
|
apply(kotlinxSerializationJsonConfiguration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var kotlinxSerializationJsonConfiguration: JsonBuilder.() -> Unit = {}
|
||||||
|
set(value) {
|
||||||
|
check(!isJsonInitialized) {
|
||||||
|
"Cannot configure kotlinxSerializationJsonConfiguration after kotlinxSerializationJson has been initialized."
|
||||||
|
}
|
||||||
|
field = value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,9 @@ import java.time.LocalDateTime
|
|||||||
import java.time.OffsetDateTime
|
import java.time.OffsetDateTime
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.json.JsonBuilder
|
||||||
import kotlinx.serialization.modules.SerializersModule
|
import kotlinx.serialization.modules.SerializersModule
|
||||||
|
import kotlinx.serialization.modules.SerializersModuleBuilder
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
@ -15,39 +17,67 @@ import java.util.concurrent.atomic.AtomicInteger
|
|||||||
import java.util.concurrent.atomic.AtomicLong
|
import java.util.concurrent.atomic.AtomicLong
|
||||||
|
|
||||||
object Serializer {
|
object Serializer {
|
||||||
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"))
|
@Deprecated("Use Serializer.kotlinxSerializationAdapters instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationAdapters"), level = DeprecationLevel.ERROR)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinSerializationAdapters: SerializersModule
|
val kotlinSerializationAdapters: SerializersModule
|
||||||
get() { return kotlinxSerializationAdapters }
|
get() { return kotlinxSerializationAdapters }
|
||||||
|
|
||||||
|
private var isAdaptersInitialized = false
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinxSerializationAdapters = SerializersModule {
|
val kotlinxSerializationAdapters: SerializersModule by lazy {
|
||||||
contextual(BigDecimal::class, BigDecimalAdapter)
|
isAdaptersInitialized = true
|
||||||
contextual(BigInteger::class, BigIntegerAdapter)
|
SerializersModule {
|
||||||
contextual(LocalDate::class, LocalDateAdapter)
|
contextual(BigDecimal::class, BigDecimalAdapter)
|
||||||
contextual(LocalDateTime::class, LocalDateTimeAdapter)
|
contextual(BigInteger::class, BigIntegerAdapter)
|
||||||
contextual(OffsetDateTime::class, OffsetDateTimeAdapter)
|
contextual(LocalDate::class, LocalDateAdapter)
|
||||||
contextual(UUID::class, UUIDAdapter)
|
contextual(LocalDateTime::class, LocalDateTimeAdapter)
|
||||||
contextual(AtomicInteger::class, AtomicIntegerAdapter)
|
contextual(OffsetDateTime::class, OffsetDateTimeAdapter)
|
||||||
contextual(AtomicLong::class, AtomicLongAdapter)
|
contextual(UUID::class, UUIDAdapter)
|
||||||
contextual(AtomicBoolean::class, AtomicBooleanAdapter)
|
contextual(AtomicInteger::class, AtomicIntegerAdapter)
|
||||||
contextual(URI::class, URIAdapter)
|
contextual(AtomicLong::class, AtomicLongAdapter)
|
||||||
contextual(URL::class, URLAdapter)
|
contextual(AtomicBoolean::class, AtomicBooleanAdapter)
|
||||||
contextual(StringBuilder::class, StringBuilderAdapter)
|
contextual(URI::class, URIAdapter)
|
||||||
|
contextual(URL::class, URLAdapter)
|
||||||
|
contextual(StringBuilder::class, StringBuilderAdapter)
|
||||||
|
|
||||||
|
apply(kotlinxSerializationAdaptersConfiguration)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"))
|
var kotlinxSerializationAdaptersConfiguration: SerializersModuleBuilder.() -> Unit = {}
|
||||||
|
set(value) {
|
||||||
|
check(!isAdaptersInitialized) {
|
||||||
|
"Cannot configure kotlinxSerializationAdaptersConfiguration after kotlinxSerializationAdapters has been initialized."
|
||||||
|
}
|
||||||
|
field = value
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated("Use Serializer.kotlinxSerializationJson instead", replaceWith = ReplaceWith("Serializer.kotlinxSerializationJson"), level = DeprecationLevel.ERROR)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val jvmJson: Json
|
val jvmJson: Json
|
||||||
get() { return kotlinxSerializationJson }
|
get() { return kotlinxSerializationJson }
|
||||||
|
|
||||||
|
private var isJsonInitialized = false
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val kotlinxSerializationJson: Json by lazy {
|
val kotlinxSerializationJson: Json by lazy {
|
||||||
|
isJsonInitialized = true
|
||||||
Json {
|
Json {
|
||||||
serializersModule = kotlinxSerializationAdapters
|
serializersModule = kotlinxSerializationAdapters
|
||||||
encodeDefaults = true
|
encodeDefaults = true
|
||||||
ignoreUnknownKeys = true
|
ignoreUnknownKeys = true
|
||||||
isLenient = true
|
isLenient = true
|
||||||
|
|
||||||
|
apply(kotlinxSerializationJsonConfiguration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var kotlinxSerializationJsonConfiguration: JsonBuilder.() -> Unit = {}
|
||||||
|
set(value) {
|
||||||
|
check(!isJsonInitialized) {
|
||||||
|
"Cannot configure kotlinxSerializationJsonConfiguration after kotlinxSerializationJson has been initialized."
|
||||||
|
}
|
||||||
|
field = value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user