Кроссплатформенная поддержка toJson и fromJsonAndroid

Форум для тех, кто программирует под Android
Anonymous
Кроссплатформенная поддержка toJson и fromJson

Сообщение Anonymous »

У меня есть приложение для Android, написанное на Kotlin. У меня есть несколько классов, и для каждого класса я использую функции Gson toJson и fromJson для этих классов. Например:

Код: Выделить всё

class A{

fun toJson():String {
return Gson().toJson(this)
}

fun fromJson(jsonString:String):A{
return Gson().fromJson(jsonString, A::class)
}
}
У меня есть еще один класс B:

Код: Выделить всё

class B{

fun toJson():String {
return Gson().toJson(this)
}

fun fromJson(jsonString:String):B{
return Gson().fromJson(jsonString, B::class)
}
}
Я использовал это, создавая экземпляр класса и затем вызывая метод (примечание: я создаю экземпляр этого класса () в другом классе:

Код: Выделить всё

val a = A()
a.toJson()
Но сейчас я пытаюсь преобразовать это в мультиплатформенный проект Kotlin, но не знаю, как подойти к преобразованиям to и from json в мультиплатформе Kotlin.< /p>
Я пробовал создавать ожидаемые функции как таковые:

Код: Выделить всё

expect fun toJsonClassA():String
expect fun fromJsonClassA(jsonString: String): A

class A{

}
а затем реализовать их фактические реализации как таковые:

Код: Выделить всё

actual fun toJsonClassA(): String {
return Gson().toJson(A::class.java)
}
При использовании приведенных выше реализаций для конкретной платформы я не могу вызывать функции toJsonClassA или fromJsonClassA с экземпляром имени класса.
Это не сработает:

Код: Выделить всё

val a = A()
a.toJsonClassA()
Любая помощь или совет относительно того, как реализовать сериализацию и десериализацию Json в мультиплатформе Kotlin, буду высоко оценена.

Подробнее здесь: https://stackoverflow.com/questions/633 ... rm-support

Вернуться в «Android»