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