gpt4 book ai didi

android - 如何在Kotlin中使用Volley正确解析此JSON响应

转载 作者:行者123 更新时间:2023-12-02 13:11:33 25 4
gpt4 key购买 nike

我很难解析下面的JSON并将其保存在列表中。

{
"statut": "Success",
"rubrique": [
{
"rubrique": "Accueil",
"position": "1"
},
{
"rubrique": "Films",
"position": "2"
},
{
"rubrique": "Séries",
"position": "3"
},
{
"rubrique": "Sketchs",
"position": "4"
},
{
"rubrique": "Musique",
"position": "5"
}
]
}

我尝试了几种方法,然后下面的代码起作用了,我的列表仅包含一项:Musique
val queue = Volley.newRequestQueue(activity)
val stringRequest = StringRequest(Request.Method.GET, endpoint,
Response.Listener<String> { response ->
val stringResponse = response.toString()
val jsonObj = JSONObject(stringResponse)
val jsonArray: JSONArray = jsonObj.getJSONArray("rubrique")

for (i in 0 until jsonArray.length()) {
val innerBlock: JSONObject = jsonArray.getJSONObject(i)
val item: RubriqueItem = RubriqueItem()
item.position = innerBlock.getString("position")
item.rubrique = innerBlock.getString("rubrique")

categories?.add(item)
}
binding?.viewPagerMain?.adapter = BaseCategoriesFragmentPagerAdapter(
parentFragmentManager, categories)
binding?.tabLayout?.setupWithViewPager(binding?.viewPagerMain)
},
Response.ErrorListener {error -> error.printStackTrace() })
queue.add(stringRequest)

类别是ArrayList,我需要将其传递给ViewPager的适配器。试图找出一种传递索引的方法,但我是Kotlin的新手,尚无法弄清楚

欢迎任何提示

最佳答案

您可以为此使用Gson lib。

首先准备响应的数据类。

ApiResponse.kt:

data class Rubrique(
val rubrique: String,
val position: String
)

data class ApiResponse(
val statut: String,
val rubrique: List<Rubrique>
)

然后要解析响应,您只需要一行:
val responseObject = Gson().fromJson(stringResponse, ApiResponse::class.java)
responseObject将拥有所有信息。列表在 responseObject.rubrique中。

您的代码将在此之后:
val stringRequest = StringRequest(Request.Method.GET, endpoint,
Response.Listener<String> { response ->
val responseObject = Gson().fromJson(response.toString(), ApiResponse::class.java)
binding?.viewPagerMain?.adapter = BaseCategoriesFragmentPagerAdapter(
parentFragmentManager, responseObject.rubrique)
binding?.tabLayout?.setupWithViewPager(binding?.viewPagerMain)
},
Response.ErrorListener {error -> error.printStackTrace() })
queue.add(stringRequest)

关于android - 如何在Kotlin中使用Volley正确解析此JSON响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61932842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com