如何在Kotlin Android中迭代单个JSON数组结果
我正在为一个Android Kotlin项目工作,以从Http请求接收数据 从服务器返回的数据是 {“状态”:“成功”} 我想在Android屏幕或控制台中检索这个结果 我尝试了以下代码,但系统表示字符串无法转换为JSONArray如何在Kotlin Android中迭代单个JSON数组结果,android,arrays,json,kotlin,Android,Arrays,Json,Kotlin,我正在为一个Android Kotlin项目工作,以从Http请求接收数据 从服务器返回的数据是 {“状态”:“成功”} 我想在Android屏幕或控制台中检索这个结果 我尝试了以下代码,但系统表示字符串无法转换为JSONArray //Code for retrieve data from server val response = client.newCall(request).execute() val result = response.body?.string().toString()
//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
阅读响应
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数据类总是好的。您可以使用它从JSON结构生成Kotlin数据类。并使用GSON或Moshi库将json数据解析为Kotlin数据类。然后,您可以轻松地使用Kotlin数据类对象访问响应中的任何数据。这里的最高级别元素是JSONObject
//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")