Как десериализовать класс с hashmap объектов? - PullRequest
0 голосов
/ 19 мая 2019

у меня контейнер класса выглядит так:

class Container {
    private val dict: HashMap<String, Any> = HashMap()
    operator fun get(key: String): Any {
        return dict[key]
    }

    operator fun set(key: String, value: Any) {
            dict[key] = value
    }
}

и код для json:

fun ser_des() {
    val inner = Container()
    val cont = Container()
    inner["field"] = arrayListOf("first", "second")
    container["inner"] = inner
    val gson = Gson()
    val json = gson.toJson(container)
    val des = gson.fromJson(json, container::class.java)
    assertEquals(arrayListOf("first", "second"), (des["inner"] as Container ["field"])
}

Что я должен сделать, чтобы этот код работал?

Я нашел ответы с помощью TypeToken, но все они для обобщенных классов. Кто-нибудь знает, как реализовать это с Джексоном?

...