如何在 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 数组结果的主要内容,如果未能解决你的问题,请参考以下文章

Android中Kotlin创建PDF

Android中Kotlin创建PDF

我们如何在 firebase(android、kotlin)中记录错误?

如何使用 kotlin 在 android 中初始化小部件

如何迭代Lua字符串中的单个字符?

如何使用Kotlin进行Android开发