如何在 Kotlin Android 中迭代单个 JSON 数组结果
Posted
技术标签:
【中文标题】如何在 Kotlin Android 中迭代单个 JSON 数组结果【英文标题】:How to iterate single JSON array result in Kotlin Android 【发布时间】:2021-04-27 20:46:25 【问题描述】:我正在为一个 android Kotlin 项目工作以接收来自 Http 请求的数据。
服务器返回的数据是
“状态”:“成功”
我想在 Android 屏幕或控制台中检索此结果。
我尝试了以下代码,但系统说字符串无法转换为 JSONArray。
//Code for retrieve data from server
val response = client.newCall(request).execute()
val result = response.body?.string().toString()
//code to iterate json
val data = StringBuilder()
val resultArray = JSONArray(result)
for (i in 0 until resultArray.length())
val jsonObject = resultArray.getJSONObject(i)
val status = jsonObject.optString("Status")
data.append(status)
textView.setText("Status" + data.toString())
println("Status" + data.toString())
请检查我的代码并建议我的代码有什么问题。
【问题讨论】:
这里***的元素是一个JSONObject 【参考方案1】:您应该使用JSONObject
阅读response
val response = client.newCall(request).execute()
val result = response.body?.string().toString()
//code to iterate json
val data = StringBuilder()
val statusObject = JSONObject(result)
textView.setText("Status$statusObject.optString("Status")")
println("Status$statusObject.optString("Status")")
【讨论】:
【参考方案2】:将 Json 转换为 Kotlin Data 类总是好的。您可以使用此 plugin 从 JSON 结构生成 Kotlin 数据类。并使用 GSON 或 Moshi 库将 json 数据解析为 Kotlin 数据类。然后您可以轻松地使用 Kotlin 数据类对象来访问响应中的任何数据。
【讨论】:
【参考方案3】://Code for retrieve data from server
val response = client.newCall(request).execute()
val result = response.body?.string().toString()
//code to iterate json
val data = JSONObject(result) as JSONObject
val dataStatus = data.getString("Status")
println("$dataStatus")
【讨论】:
以上是关于如何在 Kotlin Android 中迭代单个 JSON 数组结果的主要内容,如果未能解决你的问题,请参考以下文章