eygraber
08/02/2023, 5:57 PMeygraber
08/02/2023, 5:58 PMimport android.os.Parcel
import kotlinx.parcelize.Parceler
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.JsonObject
object JsonObjectParceler : Parceler<JsonObject?> {
@Suppress("EXPERIMENTAL_API_USAGE")
override fun create(parcel: Parcel) =
parcel.readString()?.let(Json::parseObject)
override fun JsonObject?.write(parcel: Parcel, flags: Int) {
parcel.writeString(this?.toString())
}
}
object JsonArrayParceler : Parceler<JsonArray?> {
@Suppress("EXPERIMENTAL_API_USAGE")
override fun create(parcel: Parcel) =
parcel.readString()?.let(Json::parseArray)
override fun JsonArray?.write(parcel: Parcel, flags: Int) {
parcel.writeString(this?.toString())
}
}
Usage:
data class Venue(override val json: @WriteWith<JsonObjectParceler> JsonObject) : JsonObjectWrapper, Parcelable
Error:
Parceler type JsonObjectParceler is incompatible with kotlinx/serialization/json/JsonObject
Ivan Kubyshkin [JetBrains]
08/03/2023, 6:09 AMeygraber
08/03/2023, 6:14 AM