Десериализация и сериализация объекта с использованием GSON - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь сделать объект, который я преобразовал в json, используя GSON

, это мои сущности:

data class Plane(val route: Route = Route())
data class Route(val flights: List<Flight>)
data class Flight(val id: String, val args: Any? = null) {
constructor(flight: Pair<String, Any?>) : this(flight.first, flight.second)}

, это мой код:

override fun onSaveInstanceState(outState: Bundle) {
    outState.putString("myObject", Gson().toJson(plane, Plane::class.java))
    super.onSaveInstanceState(outState)
}

override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
    super.onRestoreInstanceState(savedInstanceState)
    val plane = Gson().fromJson(savedInstanceState?.getString("myObject"), Plane::class.java)
}

так выглядит до преобразования в json:

berlin/paris/(barcelone -> (test1, test2))

и так выглядит после десериализации json:

berlin/paris/(barcelone ->  {first=test1, second=test2}) 

Я заметил, что мой объект больше не тот, и я думаю, это из-за пары. когда я пытаюсь использовать его, я получаю сообщение об ошибке:

com.google.gson.internal.LinkedTreeMap cannot be cast to kotlin.Pair

есть идеи, как получить тот же объект?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...