Is there a way how to deserialize JSON into dynami...
# serialization
t
Is there a way how to deserialize JSON into dynamic object? For example I have a data class, but I don't know the structure of prop2
Copy code
@Serializable
data class (
val prop1:String
val prop2:dynamic
)
and JSON:
Copy code
{
  "prop1": "somestring",
  "prop2": {
    "a": 1,
    "b": 2
  }
}
g
You probably can deserialize to JsonElement: val prop2: JsonElement
but you probably still need a custom serializer for it, not sure that it supported out of the box
a
Deserialising to JsonElement works automatically:
Copy code
@Serializable
data class ExampleData(val name: String, val payload: JsonElement)

val parsed = Json.Default.decodeFromString<ExampleData>("""
  {"name":"test","payload" {"k1":"v1","k2":"v2"}}
""".trimIndent())

assertThat(parsed.name, equalTo("test"))
assertThat(parsed.payload.jsonObject["k1"]?.jsonPrimitive?.content, equalTo("v1"))
👍 3