Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Kotlin Android中迭代单个JSON数组结果_Android_Arrays_Json_Kotlin - Fatal编程技术网

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

如何在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()

我正在为一个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
阅读
响应

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