Kotlin (Mutable) List <(raw) kotlin.Any?> Cast to List <JsonObject>

в моем коде я получаю файл io.vertx.core.json.JsonArray, и я хочу иметь список JsonObjects. Поэтому в Java я назвал jsonarray.getList () и get List – getList () возвращает java.util.List.

Итак, в Котлине

var list: List<JsonObject> = jsonArray.getList() 

но я получаю сообщение об ошибке

 Type mismatch: inferred type is kotlin.collections.(Mutable)List<(raw) kotlin.Any?>! but kotlin.collections.List<io.vertx.core.json.JsonObject> was expected 

Могу ли я бросить или так?

Спасибо

    JsonArray может содержать как примитивные, так и сложные объекты:

     val jsonArray = JsonArray("""[1, {"foo": "bar"}, "stack"]""") println(jsonArray.toList()) // -> [1, {foo=bar}, stack] println(jsonArray.toList().map { it?.javaClass?.simpleName }) // -> [Integer, JsonObject, String] 

    JsonObject в свою очередь, представляет собой не примитивный объект. Другими словами, не представляется возможным представлять "stack" , 5.4 , false . Если вы уверены, что jsonArray содержит только экземпляры JsonObject вы можете сделать:

     val jsonArray = JsonArray("""[{"foo": "bar"}]""") println(jsonArray.toList() .map { it as JsonObject } .map { it.getString("foo")})