Если вам нужно абстрактно что-то, с чем можно условно удобно работать, то можете например спарсить в JsonNode в том же Jackson, результат будет довольно похож (но в какой-то момент типы будут и там нужны)
val json = objectMapper.readTree(jsonString)
println(json["abc"][0]["cde"].asInt())
Взорвётся на любом шаге, где не угадаете с формой json'а, но если так хочется, то пожалуйста.