Я пытаюсь сделать объект, который я преобразовал в 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
есть идеи, как получить тот же объект?