Я просто попытался использовать библиотеку сериализации Kotlin для замены Gson, но у меня возникли проблемы с использованием ее для RealmList в моей модели. Любая помощь будет оценена. Я получаю сообщение об ошибке kotlinx.serialization.SerializationException: Can't locate argument-less serializer for class io.realm.RealmList
У меня есть мой класс данных, подобный этому
data class Person(
var name: String = "",
var social : RealmList<Social> = null,
var id: String = "")
, и мой класс социальных данных
data class Social(
var name: String = "",
var category : String = "",
var id: String = "")
, и это мой модернизированный строитель
fun provideRetrofit(okHttpClient: OkHttpClient, urlProvider :
URLProvider): Retrofit {
val contentType = MediaType.get("application/json")
return Retrofit.Builder()
.baseUrl(urlProvider.getApiBaseUrl()!!)
.addConverterFactory(Json.asConverterFactory(contentType))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(okHttpClient)
.build()
}
Я использую адаптер дооснащения, специфичный для сериализации Kotlin, и мой вызов по модернизации
override fun loadPersons(): Single<Person> {
return communicationContext.personApi
.getPersonsObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnError {
Log.e(TAG, "Load error $it")
}
.doOnSuccess {
Log.e(TAG, "Success size ${it.size}")
}
}