Kotlin(Mutable)List <(raw)kotlin.Any?>强制转换为List <JsonObject>
在我的代码中我得到一个io.vertx.core.json.JsonArray,我想有一个JsonObjects列表。 所以在Java中,我调用jsonarray.getList()并获取List – getList()返回一个java.util.List。
所以在Kotlin
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")})