ribesg
03/13/2019, 4:08 PMnull
value anywhere?sandwwraith
03/13/2019, 4:09 PMribesg
03/13/2019, 4:13 PMnull
as a value. null
is different than not present for this API (and a lot of others)sandwwraith
03/13/2019, 4:14 PMnull
as default value for some variable, you can use Json(encodeDefaults = false)
to drop them during serialization processribesg
03/13/2019, 4:18 PMnull
that I would like to encode anywayribesg
03/13/2019, 4:20 PMdewildte
03/13/2019, 4:28 PMnull
at all?ribesg
03/13/2019, 5:09 PMribesg
03/13/2019, 5:11 PMribesg
03/13/2019, 5:30 PMribesg
03/13/2019, 5:32 PMegorand
03/13/2019, 8:07 PMdewildte
03/13/2019, 8:30 PMdewildte
03/13/2019, 8:32 PMdewildte
03/13/2019, 8:33 PMnull
at every opportunity.ribesg
03/14/2019, 7:59 AMribesg
03/14/2019, 7:59 AMribesg
03/14/2019, 9:13 AMencodeDefaults
absolutely does not work.sandwwraith
03/14/2019, 10:26 AMJsonElement
, then just edit it to filter out nullssandwwraith
03/14/2019, 10:27 AMribesg
03/14/2019, 10:28 AM@Serializable
internal data class SearchQuery(
val query: String,
val aroundLatLng: String?,
val facetFilters: List<FacetFilter>?
) {
@Serializer(SearchQuery::class)
companion object : KSerializer<SearchQuery> {
override val descriptor = object : SerialClassDescImpl(SearchQuery::class.simpleName!!) {
init {
addElement("query")
addElement("aroundLatLnt", true)
addElement("facetFilters", true)
}
}
override fun serialize(encoder: Encoder, obj: SearchQuery) {
encoder
.beginStructure(descriptor)
.apply {
encodeStringElement(descriptor, 0, obj.query)
obj.aroundLatLng?.let {
encodeStringElement(descriptor, 1, it)
}
obj.facetFilters?.let {
encodeSerializableElement(descriptor, 2, FacetFilter.serializer().list, it)
}
}
.endStructure(descriptor)
}
override fun deserialize(decoder: Decoder): SearchQuery {
throw NotImplementedError()
}
}
}
Of course I would prefer to only need the first 4 lines...ribesg
03/14/2019, 10:30 AMribesg
03/14/2019, 10:31 AMsandwwraith
03/14/2019, 11:52 AMdewildte
03/14/2019, 1:24 PMribesg
03/14/2019, 1:28 PMdewildte
03/14/2019, 1:28 PMdewildte
03/14/2019, 1:29 PMdewildte
03/14/2019, 1:31 PMribesg
03/14/2019, 1:32 PMJsonObject
instance, removing null
values by hand and converting that to String
before I pass it to Ktor as a body.ribesg
03/14/2019, 1:33 PMnull
values entirely.dewildte
03/14/2019, 1:33 PMdewildte
03/14/2019, 1:34 PMribesg
03/14/2019, 1:36 PMdewildte
03/14/2019, 1:51 PM