pakoito
09/28/2017, 12:00 AMis there built-in support for polymorphic arrays, and sealed classes?
sandwwraith
09/28/2017, 12:03 AMpakoito
09/28/2017, 12:08 AMpakoito
09/28/2017, 12:10 AMpakoito
09/28/2017, 12:14 AMsandwwraith
09/28/2017, 12:15 AM@Serializable
open class A() {
val a: Int = 42
}
@Serializable
class B: A() {
val b: String = "42"
}
@Serializable
class Box(val a: A)
fun main(args: Array<String>) {
val s = JSON.stringify(Box(B()))
val b = JSON.parse<Box>(s)
println(s)
println(b.a is B)
}
will produce {"a":["B",{"a":42,"b":"42"}]}
, and true
pakoito
09/28/2017, 12:16 AMpakoito
09/28/2017, 12:18 AMsandwwraith
09/28/2017, 12:21 AMpakoito
09/28/2017, 12:22 AMsandwwraith
09/28/2017, 12:23 AMsandwwraith
09/28/2017, 12:23 AMpakoito
09/28/2017, 12:24 AMpakoito
09/28/2017, 12:24 AMpakoito
09/28/2017, 12:24 AMval b = JSON.parse<List<Animal>>(/*..*/)
pakoito
09/28/2017, 12:24 AMpakoito
09/28/2017, 12:25 AMpakoito
09/28/2017, 12:25 AMpakoito
09/28/2017, 12:25 AMsandwwraith
09/28/2017, 12:28 AMsandwwraith
09/28/2017, 12:28 AMsandwwraith
09/28/2017, 12:29 AMpakoito
09/28/2017, 12:30 AMpakoito
09/28/2017, 12:31 AMval b = JSON.parse<List<List<Any>>>(…)
pakoito
09/28/2017, 12:31 AMpakoito
09/28/2017, 12:31 AMpakoito
09/28/2017, 12:33 AMTuple<String, Map<String, Any>>
to avoid info losspakoito
09/28/2017, 12:33 AMsandwwraith
09/28/2017, 12:35 AMpakoito
09/28/2017, 12:38 AMpakoito
09/28/2017, 12:38 AMpakoito
09/28/2017, 12:38 AMsandwwraith
09/28/2017, 12:39 AMsandwwraith
09/28/2017, 12:39 AMsandwwraith
09/28/2017, 12:39 AMsandwwraith
09/28/2017, 12:41 AM