我正在尝试映射我的 JSONArray
到 Array<String?>
.
我这样做是这样的:
fun getTextResponse(responseJson: JSONObject): Array<String?>{
val resultData = responseJson.getJSONArray("data")
.getJSONObject(0)
.getJSONArray("result")
return resultData.map{ it.getString("label") }.toTypedArray()
}
但是
it
未键入为 JSONObject
,有什么办法可以强制输入JSONObject
?
最佳答案
问题是 resultData
类型为 JSONArray
,这是一个 JSON 实用程序类,不会覆盖 Kotlin/Java Array
接口(interface),因此没有 map
功能。
您必须按索引检索每个字符串并生成新数组,如下所示:
fun getTextResponse(responseJson: JSONObject): Array<String?> {
val resultData = responseJson.getJSONArray("data")
.getJSONObject(0)
.getJSONArray("result")
return Array<String?>(resultData.length()) { i -> resultData.getString(i) }
}
关于Kotlin 如何将 JSONArray 映射到类型(流),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54136316/