Android:JSON对象getString

Android:JSON对象getString,android,kotlin,loopj,Android,Kotlin,Loopj,我使用这个JSON 我需要获取字符串名、追随者、追随者等。但节目上说“名字没有价值”。我想我需要去一个特定的用户示例:获取这些信息,但我不知道如何 我使用loopj库 这是我的密码 private fun getDataGitDetail() { progressBar.visibility = View.VISIBLE val client = AsyncHttpClient() client.addHeader("Authorization",

我使用这个JSON

我需要获取字符串名、追随者、追随者等。但节目上说“名字没有价值”。我想我需要去一个特定的用户示例:获取这些信息,但我不知道如何

我使用loopj库

这是我的密码

private fun getDataGitDetail() {
        progressBar.visibility = View.VISIBLE
        val client = AsyncHttpClient()
        client.addHeader("Authorization", "token 6fe9dff2e5e43d25eb3abe9ff508a750b972f725")
        client.addHeader("User-Agent", "request")
        val url = "https://api.github.com/users"
        client.get(url, object : AsyncHttpResponseHandler() {
            override fun onSuccess(
                statusCode: Int,
                headers: Array<Header>,
                responseBody: ByteArray
            ) {
                progressBar.visibility = View.INVISIBLE
                val result = String(responseBody)
                Log.d(TAG, result)
                try {
                    val jsonArray = JSONArray(result)
                    for (i in 0 until jsonArray.length()) {
                        val jsonObject = jsonArray.getJSONObject(i)
                        val username: String? = jsonObject.getString("login")
                        val name: String? = jsonObject.getString("name")
                        val avatar: String? = jsonObject.getString("avatar_url")
                        val company: String? = jsonObject.getString("url")
                        val location: String? = jsonObject.getString("url")
                        val repository: Int = 0
                        val followers: Int = 0
                        val following: Int = 0
                        listData.add(
                            Data(
                                username,
                                name,
                                avatar,
                                company,
                                location,
                                repository,
                                followers,
                                following
                            )
                        )
                    }
                    showRecyclerList()
                } catch (e: Exception) {
                    Toast.makeText(this@MainActivity, e.message, Toast.LENGTH_SHORT)
                        .show()
                    e.printStackTrace()
                }
            }

            override fun onFailure(
                statusCode: Int,
                headers: Array<Header>,
                responseBody: ByteArray,
                error: Throwable
            ) {
                progressBar.visibility = View.INVISIBLE
                val errorMessage = when (statusCode) {
                    401 -> "$statusCode : Bad Request"
                    403 -> "$statusCode : Forbidden"
                    404 -> "$statusCode : Not Found"
                    else -> "$statusCode : ${error.message}"
                }
                Toast.makeText(this@MainActivity, errorMessage, Toast.LENGTH_LONG)
                    .show()
            }
        })
    }
private fun getDataGitDetail(){
progressBar.visibility=View.VISIBLE
val client=AsyncHttpClient()
client.addHeader(“授权”,“令牌6fe9dff2e5e43d25eb3abe9ff508a750b972f725”)
client.addHeader(“用户代理”、“请求”)
val url=”https://api.github.com/users"
get(url,对象:AsyncHttpResponseHandler(){
一旦成功,就放弃乐趣(
状态代码:Int,
标题:数组,
回应者:ByteArray
) {
progressBar.visibility=View.INVISIBLE
val结果=字符串(ResponseBy)
Log.d(标记、结果)
试一试{
val jsonArray=jsonArray(结果)
for(在0中输入i直到jsonArray.length()){
val jsonObject=jsonArray.getJSONObject(i)
val用户名:String?=jsonObject.getString(“登录”)
val名称:字符串?=jsonObject.getString(“名称”)
val avatar:String?=jsonObject.getString(“avatar_url”)
val公司:字符串?=jsonObject.getString(“url”)
val位置:字符串?=jsonObject.getString(“url”)
val存储库:Int=0
val followers:Int=0
以下值:Int=0
listData.add(
资料(
用户名,
名称
阿凡达
公司,
位置,
存储库,
追随者,,
下列的
)
)
}
showRecyclerList()
}捕获(e:例外){
Toast.makeText(this@MainActivity,e.留言,吐司。长度(短)
.show()
e、 printStackTrace()
}
}
覆盖故障(
状态代码:Int,
标题:数组,
回应者:再见,
错误:可丢弃
) {
progressBar.visibility=View.INVISIBLE
val errorMessage=何时(状态代码){
401->“$statusCode:错误请求”
403->“$statusCode:禁止”
404->“$statusCode:未找到”
else->“$statusCode:${error.message}”
}
Toast.makeText(this@MainActivity,错误消息,土司。长度(长)
.show()
}
})
}

您得到的当前响应在JSONObject中不包含键名。 如果需要所有用户的名称,则必须转到api中的每个用户端点。您需要在for循环中发出另一个请求,该请求从端点获取数据,如

然后,您可以选择从第一个响应或第二个响应获取其余数据,因为这两个响应都包含该信息


我希望这有帮助

不需要JSON数组,cz API是JSON对象

例如:

client.get(url,对象:AsyncHttpResponseHandler(){
成功时覆盖乐趣(状态代码:Int,标题:Array,响应主体:ByteArray){
试一试{
//解析json
val结果=字符串(ResponseBy)
val responseObject=JSONObject(结果)
textView2.text=responseObject.getString(“登录”)
textView3.text=responseObject.getString(“名称”)
textView9.text=responseObject.getString(“位置”)
desc.text=responseObject.getString(“公司”)
查看?.let{Glide.with(it).load(responseObject.getString(“avatar_url”)).into(imageView2)}
}捕获(e:例外){
Log.d(“异常”,例如message.toString())
}
}
}
val jsonArray = JSONArray(result)
           for (i in 0 until jsonArray.length()) {
              val jsonObject = jsonArray.getJSONObject(i)
              val username: String? = jsonObject.getString("login")
              //Make the request here using "https://api.github.com/users/" + login