如何在Kotlin Android中迭代单个JSON数组结果



我正在为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来读取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")}")

将Json转换为Kotlin Data类总是好的。您可以使用这个插件从JSON结构生成Kotlin数据类。并使用GSON或Moshi库将json数据解析为Kotlin数据类。然后,您可以轻松地使用Kotlin数据类对象来访问响应中的任何数据。

//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")

最新更新