我已经为此工作了一段时间并在互联网上搜索,但我就是找不到解决方案。
我使用 volley 查询 api 并收到此响应。
{
"Title": "Groupname",
"requestedURL": "url",
"responseURL": [
"https://i.mg.xxx/p372qxd3694e1.jpg",
"https://i.mg.xxx/qs06k8e3694e1.jpg",
"https://i.mg.xxx/mjfzw6e3694e1.jpg"
]
}
Title和requestedUrl没问题
val responseName = response.getString("Title")
但是我无法从requestedURL获取数据。
我用 .getJSONArray / .getJSONObject 尝试了各种方法 - 我在互联网上找到的,但没有任何效果,也许是因为我没有正确理解它
问题在于从responseURL 字段中提取数据,该字段是一个JSON 数组。要正确处理此问题,请按照以下步骤操作:
解决方案
以下是如何使用 Volley 从 JSON 响应中提取responseURL:
val jsonObject = JSONObject(response) // Parse the response as a JSONObject
// Get the title
val responseName = jsonObject.getString("Title")
// Get the responseURL array
val responseUrlArray = jsonObject.getJSONArray("responseURL")
// Iterate through the array to extract each URL
val urlList = mutableListOf<String>()
for (i in 0 until responseUrlArray.length()) {
val url = responseUrlArray.getString(i) // Extract each URL as a String
urlList.add(url)
}
// Now urlList contains all the URLs
for (url in urlList) {
println(url) // Print or use each URL
}
解释
JSONObject 解析:将整个响应转换为 JSONObject。
val jsonObject = JSONObject(response)
将responseURL提取为JSONArray:
val responseUrlArray = jsonObject.getJSONArray("responseURL")
迭代 JSONArray:
应该可以解决问题。 谢谢!